Here is SearchDealerPage.
package gov.xyz.abc.view.asm;
import gov.xyz.abc.business.AsmAdminService;
import gov.xyz.abc.common.AppSession;
import gov.xyz.abc.common.AuthenticatedPage;
import gov.xyz.abc.common.DealerDetails;
import gov.xyz.abc.common.abcException;
import gov.xyz.abc.model.abcUser;
import gov.xyz.abc.model.abcUserSearchTO;
import gov.xyz.abc.util.DefaultFocusBehavior;
import gov.xyz.abc.util.abcConstants;
import gov.xyz.abc.util.abcErrConstant;
import gov.xyz.abc.util.abcUtils;
import gov.xyz.wktcommon.components.ErroringTextField;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.validation.validator.StringValidator;
/**
* Search Dealer Page.
*
* @author Pavankumar Appana
* @since 08/05/2011
*/
public class SearchDealerPage extends AuthenticatedPage {
/**
*
*/
private static final long serialVersionUID = 1L;
@SpringBean
private AsmAdminService adminService;
private AbcUserSearchTO abcUserSearch;
private AbcUser abcUser = null;
//callingFromWhichScreen flag is to indicate whether this screen is
called for dealer information or dealer update.
//Set callingFromWhichScreen to "update" for dealer update, "search"
for dealer information while calling.
public SearchDealerPage(PageParameters pageParameters) {
final String callingFromWhichScreen =
pageParameters.get(abcConstants.PARAM_CALLING_SCREEN).toString();
abcUserSearch = new abcUserSearchTO();
//Search Form
final Form<AbcUserSearchTO> searchForm =
new Form<AbcUserSearchTO>("searchForm", new
CompoundPropertyModel<AbcUserSearchTO>(abcUserSearch));
searchForm.setOutputMarkupId(true);
searchForm.setMarkupId("searchFormId");
add(searchForm);
final Label pagetitle = new Label("pageTitle", new Model<String>());
if (abcConstants.UPDATE_SCREEN.equals(callingFromWhichScreen)) {
pagetitle.setDefaultModelObject("Search Dealer");
} else if
(abcConstants.SEARCH_SCREEN.equals(callingFromWhichScreen)) {
pagetitle.setDefaultModelObject("Dealer Inquiry");
}
add(pagetitle);
final ErroringTextField<String> dealerIDFld = new
ErroringTextField<String>("searchDealer");
dealerIDFld.setOutputMarkupId(true);
dealerIDFld.setMarkupId("searchDealer");
dealerIDFld.setRequired(true);
dealerIDFld.add(StringValidator.minimumLength(2));
dealerIDFld.add(new DefaultFocusBehavior());
if (dealerIDFld.getSizeInBytes() < 5) {
dealerIDFld.add(abcUtils.getIntegerPatternValidator());
}
searchForm.add(dealerIDFld);
final AjaxButton searchSubmitButton = new AjaxButton("search") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
sbpanel.saveState();
try {
if (dealerIDFld.getValue().length() > 5) {
abcUser =
adminService.getDealerByDealerFFL(dealerIDFld.getInput());
} else if (abcUserSearch.getSearchDealer() != null &&
!"".equals(abcUserSearch.getSearchDealer())) {
abcUser =
adminService.getDealerByDealerId(StringUtils.leftPad(abcUserSearch.getSearchDealer(),
5, '0'));
//abcUser =
adminService.getDealerByDealerId(dealerIDFld.getInput());
}
if (abcUser == null) {
if (dealerIDFld.getValue().length() <= 5)
form.error("Dealer does not exist with entered
Dealer ID, please search again with different Dealer ID.");
else
form.error("Dealer does not exist with entered
FFL#, please search again with different FFL#.");
target.add(form);
} else {
if
(abcConstants.UPDATE_SCREEN.equals(callingFromWhichScreen)) {
PageParameters pageParameters = new
PageParameters();
pageParameters.set("abcUser", abcUser);
DealerDetails dealerDetails = new
DealerDetails();
dealerDetails.setFflNumber(abcUser.getFflNumber());
dealerDetails.setDealerNumber(abcUser.getDealerNumber());
((AppSession)
getSession()).setDealerDetails(dealerDetails);
setResponsePage(new ManageDealerPage(abcUser));
} else if
(abcConstants.SEARCH_SCREEN.equals(callingFromWhichScreen)) {
setResponsePage(new
DealerInformationPage(abcUser));
}
}
} catch (abcException abcException) {
if
(abcException.getMessage().contains(abcErrConstant.INVALID_INPUT) ||
abcException.getMessage().contains(abcErrConstant.NONNUMERIC_INPUT)) {
sbpanel.saveError(this, new abcException("Invalid
Dealer ID entered. Only numbers are allowed."));
} else {
sbpanel.saveError(this, new abcException("Error
when searching Dealer. Make sure you have entered valid dealer Id."));
}
}
}
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
super.onError(target, form);
target.add(searchForm);
target.add(sbpanel);
}
};
searchSubmitButton.setMarkupId("searchBtn");
searchForm.setDefaultButton(searchSubmitButton);
searchForm.add(searchSubmitButton);
//Reset Button
searchForm.add(new AjaxButton("searchClear") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
sbpanel.saveState();
PageParameters pageParameters = new PageParameters();
pageParameters.set(abcConstants.PARAM_CALLING_SCREEN,
callingFromWhichScreen);
AbcUserSearchTO AbcUserSearchTO =
searchForm.getModelObject();
AbcUserSearchTO.setSearchName("");
setResponsePage(new SearchDealerPage(pageParameters));
}
}.setDefaultFormProcessing(false).setMarkupId("srchClearBtn"));
}
}
On Wed, Nov 18, 2015 at 11:28 AM, Francois Meillet <
[email protected]> wrote:
> Could you show us the SearchDealerPage code
>
> François
>
>
>
>
>
>
>
>
> Le 18 nov. 2015 à 17:25, Mihir Chhaya <[email protected]> a écrit :
>
> > Hello,
> >
> > I am using Wicket 7 + Spring 4.x + Hibernate 4.x (recently migrated from
> > Wicket 1.4).
> >
> > Since deployment of the app on JBOSS, the application is crashing with
> > OutOfMemory error for PermGen. We are at the point of rolling back to 1.4
> > as application was working fine without such issue; doesn't necessarily
> > mean Wicket 7 is an issue. There is OutOfMemory error reported with
> > Wicket+Spring for Wicket 6.20, but the issue status shows fixed.
> >
> > JBOSS application server PermGen is 512MB, so doesn't seem that be an
> issue.
> >
> > Here is the stacktrace (First and Second). Second seems to be the result
> of
> > First one.
> >
> > Could anybody shade some light? I ran with some load on my local (tomcat
> as
> > well as on JBOSS) and monitored using VisualVM. PermGen is remaining
> > between 20 and 100 MB.
> >
> >
> > First
> > =========
> > 16:29:19,808 ERROR
> >
> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/fes].[default]]
> > (http-/162.143.93.98:8543-34) JBWEB000236: Servlet.service() for servlet
> > default threw exception: java.lang.OutOfMemoryError: PermGen space
> > at sun.misc.Unsafe.defineClass(Native Method) [rt.jar:1.7.0_75]
> > at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
> > [rt.jar:1.7.0_75]
> > at
> >
> sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:399)
> > [rt.jar:1.7.0_75]
> > at
> >
> sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:396)
> > [rt.jar:1.7.0_75]
> > at java.security.AccessController.doPrivileged(Native Method)
> > [rt.jar:1.7.0_75]
> > at
> >
> sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:395)
> > [rt.jar:1.7.0_75]
> > at
> >
> sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:113)
> > [rt.jar:1.7.0_75]
> > at
> >
> sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:331)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1376)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:72)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:493)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)
> > [rt.jar:1.7.0_75]
> > at java.security.AccessController.doPrivileged(Native Method)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:468)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1133)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
> > [rt.jar:1.7.0_75]
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
> > [rt.jar:1.7.0_75]
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
> > [rt.jar:1.7.0_75]
> > at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
> > [rt.jar:1.7.0_75]
> > at
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
> > [rt.jar:1.7.0_75]
> > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
> > [rt.jar:1.7.0_75]
> > at
> >
> org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:260)
> > [wicket-core-7.0.0.jar:7.0.0]
> >
> >
> > Second:
> > =======
> > 16:24:22,674 ERROR [org.apache.wicket.DefaultExceptionMapper]
> > (http-/162.143.93.97:8543-14) Unexpected error occurred:
> > org.apache.wicket.WicketRuntimeException: Can't instantiate page using
> > constructor 'public
> >
> gov.xyz.abc.view.asm.SearchDealerPage(org.apache.wicket.request.mapper.parameter.PageParameters)'
> > and argument 'callingFromWhichScreen=[search]'. An exception has been
> > thrown during construction!
> > at
> >
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:194)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:99)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:106)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:271)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:169)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.isPageStateless(WebPageRenderer.java:287)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.shouldRenderPageAndWriteResponse(WebPageRenderer.java:329)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:193)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.core.request.handler.RequestSettingRequestHandler.respond(RequestSettingRequestHandler.java:78)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > [wicket-request-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> > [wicket-core-7.0.0.jar:7.0.0]
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:91)
> > at
> >
> org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.invoke(JBossWebContext.java:72)
> > at
> >
> org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:134)
> > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> > at
> >
> org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99)
> > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> > at org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:92)
> > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> > at org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64)
> > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> > at
> >
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
> > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> > at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:880)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> >
> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:607)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2036)
> > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> > at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_75]
> > Caused by: java.lang.reflect.InvocationTargetException
> > at sun.reflect.GeneratedConstructorAccessor281.newInstance(Unknown
> Source)
> > [:1.7.0_75]
> > at
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > [rt.jar:1.7.0_75]
> > at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> > [rt.jar:1.7.0_75]
> > at
> >
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:171)
> > [wicket-core-7.0.0.jar:7.0.0]
> > Thanks,
> > -Mihir.
>
>