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 < francois.meil...@gmail.com> wrote: > Could you show us the SearchDealerPage code > > François > > > > > > > > > Le 18 nov. 2015 à 17:25, Mihir Chhaya <mihir.chh...@gmail.com> 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. > >