You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mihir Chhaya <mi...@gmail.com> on 2015/11/18 17:25:28 UTC

Wicket 7 - OutOfMemory PermGen

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.

Re: Wicket 7 - OutOfMemory PermGen

Posted by Mihir Chhaya <mi...@gmail.com>.
Thanks, Christos. That is not the case though; we have Java 7 JDE from IDE
to Application server.

On Wed, Nov 18, 2015 at 12:43 PM, Christos Stieglitz <ch...@gnosys.de>
wrote:

> Just in case:
> i recently had exactly the same problem. It turned out that it is not
> related to Wicket at all.
>
> Do you use a Java8 JDK? Do you compile for Java7?
>
> The PermGen Exception happens at random times [*], always at the same
> line in the code. Hence you assume you have some faulty code there.
> But it is a JDK 8 -> 7 compatibility mode issue, not Wicket.
> Before losing lots of hours (like i did) just check the settings of your
> IDE.
>
> [*] under Windows 64bit twice as often as under Linux.
>
> HTH
>
> Christos
>
>
>
>
> Am Wednesday, den 18.11.2015, 11:56 -0500 schrieb Mihir Chhaya:
> > Martin, Yes. I am using Wicket 7.00.
> >
> > On Wed, Nov 18, 2015 at 11:55 AM, Mihir Chhaya <mi...@gmail.com>
> > wrote:
> >
> > > First, Thanks Francois for your quick looking into this.
> > >
> > > The SearchDealerPage is created as below. The link is menu option.
> > >
> > > BookmarkablePageLink<String> dealerInquiryLink = new
> > > BookmarkablePageLink<String>("dealerInquiryLink",
> SearchDealerPage.class,
> > > searchPageParameters);
> > >
> > >
> > > Thanks,
> > >
> > > -Mihir.
> > >
> > >
> > > On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet <
> > > francois.meillet@gmail.com> wrote:
> > >
> > >> Sorry, it's seems that there is a problem when you instanciate the
> > >> SearchDealerPage instance
> > >>
> > >> How you instanciate it ?
> > >>
> > >> François
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> Le 18 nov. 2015 à 17:46, Mihir Chhaya <mi...@gmail.com> a
> écrit :
> > >>
> > >> > Following are AbcUserSearchTO and AbcUser classes with DomainObject
> > >> > implementation.
> > >> >
> > >> > public interface DomainObject extends Serializable {
> > >> >
> > >> >    Long getId();
> > >> > }
> > >> >
> > >> > public class AbcUserSearchTO implements DomainObject {
> > >> >
> > >> > /**
> > >> > *
> > >> > */
> > >> > private static final long serialVersionUID = 1L;
> > >> >
> > >> > /* (non-Javadoc)
> > >> > * @see gov.fdle.fpp.domain.DomainObject#getId()
> > >> > */
> > >> > @Override
> > >> > public Long getId() {
> > >> > return null;
> > >> > }
> > >> > private String searchName;
> > >> > private String searchDealer;
> > >> >
> > >> > /**
> > >> > * @return the lastName
> > >> > */
> > >> > public String getSearchName() {
> > >> > return searchName;
> > >> > }
> > >> >
> > >> > /**
> > >> > * @param name the lastName to set
> > >> > */
> > >> > public void setSearchName(String name) {
> > >> >        if (name == null){
> > >> >            name = FppConstants.EMPTY_STRING;
> > >> >        }
> > >> > this.searchName = name;
> > >> > }
> > >> >
> > >> > /**
> > >> > * @return the searchDealer
> > >> > */
> > >> > public String getSearchDealer() {
> > >> > return searchDealer;
> > >> > }
> > >> >
> > >> > /**
> > >> > * @param searchDealer the searchDealer to set
> > >> > */
> > >> > public void setSearchDealer(String searchDealer) {
> > >> > this.searchDealer = searchDealer;
> > >> > }
> > >> > }
> > >> >
> > >> >
> > >> > public class AbcUser implements DomainObject {
> > >> >
> > >> > private static final long serialVersionUID = 1L;
> > >> > public Long getId() {
> > >> >        return null;
> > >> >    }
> > >> >
> > >> > //ASM fields
> > >> >    private long userNbr;
> > >> >    private String userName;
> > >> >    private String password;
> > >> >    private String firstName;
> > >> >    private String lastName;
> > >> > ...setter
> > >> > ....getter
> > >> >
> > >> > }
> > >> >
> > >> > On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
> > >> > francois.meillet@gmail.com> wrote:
> > >> >
> > >> >> and the abcUserSearchTO ?
> > >> >>
> > >> >>
> > >> >> François
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a
> > >> écrit :
> > >> >>
> > >> >>> 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.meillet@gmail.com> wrote:
> > >> >>>
> > >> >>>> Could you show us the SearchDealerPage code
> > >> >>>>
> > >> >>>> François
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>>
> > >> >>>> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
> > >> >>>>
> > >> >>>>
> > >> >>
> > >> >>
> > >>
> > >>
> > >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Wicket 7 - OutOfMemory PermGen

Posted by Christos Stieglitz <ch...@gnosys.de>.
Just in case:
i recently had exactly the same problem. It turned out that it is not
related to Wicket at all.

Do you use a Java8 JDK? Do you compile for Java7?

The PermGen Exception happens at random times [*], always at the same
line in the code. Hence you assume you have some faulty code there.
But it is a JDK 8 -> 7 compatibility mode issue, not Wicket. 
Before losing lots of hours (like i did) just check the settings of your
IDE.

[*] under Windows 64bit twice as often as under Linux.

HTH

Christos




Am Wednesday, den 18.11.2015, 11:56 -0500 schrieb Mihir Chhaya: 
> Martin, Yes. I am using Wicket 7.00.
> 
> On Wed, Nov 18, 2015 at 11:55 AM, Mihir Chhaya <mi...@gmail.com>
> wrote:
> 
> > First, Thanks Francois for your quick looking into this.
> >
> > The SearchDealerPage is created as below. The link is menu option.
> >
> > BookmarkablePageLink<String> dealerInquiryLink = new
> > BookmarkablePageLink<String>("dealerInquiryLink", SearchDealerPage.class,
> > searchPageParameters);
> >
> >
> > Thanks,
> >
> > -Mihir.
> >
> >
> > On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet <
> > francois.meillet@gmail.com> wrote:
> >
> >> Sorry, it's seems that there is a problem when you instanciate the
> >> SearchDealerPage instance
> >>
> >> How you instanciate it ?
> >>
> >> François
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Le 18 nov. 2015 à 17:46, Mihir Chhaya <mi...@gmail.com> a écrit :
> >>
> >> > Following are AbcUserSearchTO and AbcUser classes with DomainObject
> >> > implementation.
> >> >
> >> > public interface DomainObject extends Serializable {
> >> >
> >> >    Long getId();
> >> > }
> >> >
> >> > public class AbcUserSearchTO implements DomainObject {
> >> >
> >> > /**
> >> > *
> >> > */
> >> > private static final long serialVersionUID = 1L;
> >> >
> >> > /* (non-Javadoc)
> >> > * @see gov.fdle.fpp.domain.DomainObject#getId()
> >> > */
> >> > @Override
> >> > public Long getId() {
> >> > return null;
> >> > }
> >> > private String searchName;
> >> > private String searchDealer;
> >> >
> >> > /**
> >> > * @return the lastName
> >> > */
> >> > public String getSearchName() {
> >> > return searchName;
> >> > }
> >> >
> >> > /**
> >> > * @param name the lastName to set
> >> > */
> >> > public void setSearchName(String name) {
> >> >        if (name == null){
> >> >            name = FppConstants.EMPTY_STRING;
> >> >        }
> >> > this.searchName = name;
> >> > }
> >> >
> >> > /**
> >> > * @return the searchDealer
> >> > */
> >> > public String getSearchDealer() {
> >> > return searchDealer;
> >> > }
> >> >
> >> > /**
> >> > * @param searchDealer the searchDealer to set
> >> > */
> >> > public void setSearchDealer(String searchDealer) {
> >> > this.searchDealer = searchDealer;
> >> > }
> >> > }
> >> >
> >> >
> >> > public class AbcUser implements DomainObject {
> >> >
> >> > private static final long serialVersionUID = 1L;
> >> > public Long getId() {
> >> >        return null;
> >> >    }
> >> >
> >> > //ASM fields
> >> >    private long userNbr;
> >> >    private String userName;
> >> >    private String password;
> >> >    private String firstName;
> >> >    private String lastName;
> >> > ...setter
> >> > ....getter
> >> >
> >> > }
> >> >
> >> > On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
> >> > francois.meillet@gmail.com> wrote:
> >> >
> >> >> and the abcUserSearchTO ?
> >> >>
> >> >>
> >> >> François
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a
> >> écrit :
> >> >>
> >> >>> 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.meillet@gmail.com> wrote:
> >> >>>
> >> >>>> Could you show us the SearchDealerPage code
> >> >>>>
> >> >>>> François
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
> >> >>>>
> >> >>>>
> >> >>
> >> >>
> >>
> >>
> >



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Wicket 7 - OutOfMemory PermGen

Posted by Mihir Chhaya <mi...@gmail.com>.
Martin, Yes. I am using Wicket 7.00.

On Wed, Nov 18, 2015 at 11:55 AM, Mihir Chhaya <mi...@gmail.com>
wrote:

> First, Thanks Francois for your quick looking into this.
>
> The SearchDealerPage is created as below. The link is menu option.
>
> BookmarkablePageLink<String> dealerInquiryLink = new
> BookmarkablePageLink<String>("dealerInquiryLink", SearchDealerPage.class,
> searchPageParameters);
>
>
> Thanks,
>
> -Mihir.
>
>
> On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet <
> francois.meillet@gmail.com> wrote:
>
>> Sorry, it's seems that there is a problem when you instanciate the
>> SearchDealerPage instance
>>
>> How you instanciate it ?
>>
>> François
>>
>>
>>
>>
>>
>>
>>
>>
>> Le 18 nov. 2015 à 17:46, Mihir Chhaya <mi...@gmail.com> a écrit :
>>
>> > Following are AbcUserSearchTO and AbcUser classes with DomainObject
>> > implementation.
>> >
>> > public interface DomainObject extends Serializable {
>> >
>> >    Long getId();
>> > }
>> >
>> > public class AbcUserSearchTO implements DomainObject {
>> >
>> > /**
>> > *
>> > */
>> > private static final long serialVersionUID = 1L;
>> >
>> > /* (non-Javadoc)
>> > * @see gov.fdle.fpp.domain.DomainObject#getId()
>> > */
>> > @Override
>> > public Long getId() {
>> > return null;
>> > }
>> > private String searchName;
>> > private String searchDealer;
>> >
>> > /**
>> > * @return the lastName
>> > */
>> > public String getSearchName() {
>> > return searchName;
>> > }
>> >
>> > /**
>> > * @param name the lastName to set
>> > */
>> > public void setSearchName(String name) {
>> >        if (name == null){
>> >            name = FppConstants.EMPTY_STRING;
>> >        }
>> > this.searchName = name;
>> > }
>> >
>> > /**
>> > * @return the searchDealer
>> > */
>> > public String getSearchDealer() {
>> > return searchDealer;
>> > }
>> >
>> > /**
>> > * @param searchDealer the searchDealer to set
>> > */
>> > public void setSearchDealer(String searchDealer) {
>> > this.searchDealer = searchDealer;
>> > }
>> > }
>> >
>> >
>> > public class AbcUser implements DomainObject {
>> >
>> > private static final long serialVersionUID = 1L;
>> > public Long getId() {
>> >        return null;
>> >    }
>> >
>> > //ASM fields
>> >    private long userNbr;
>> >    private String userName;
>> >    private String password;
>> >    private String firstName;
>> >    private String lastName;
>> > ...setter
>> > ....getter
>> >
>> > }
>> >
>> > On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
>> > francois.meillet@gmail.com> wrote:
>> >
>> >> and the abcUserSearchTO ?
>> >>
>> >>
>> >> François
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a
>> écrit :
>> >>
>> >>> 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.meillet@gmail.com> wrote:
>> >>>
>> >>>> Could you show us the SearchDealerPage code
>> >>>>
>> >>>> François
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
>> >>>>
>> >>>>
>> >>
>> >>
>>
>>
>

Re: Wicket 7 - OutOfMemory PermGen

Posted by Mihir Chhaya <mi...@gmail.com>.
First, Thanks Francois for your quick looking into this.

The SearchDealerPage is created as below. The link is menu option.

BookmarkablePageLink<String> dealerInquiryLink = new
BookmarkablePageLink<String>("dealerInquiryLink", SearchDealerPage.class,
searchPageParameters);


Thanks,

-Mihir.


On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet <
francois.meillet@gmail.com> wrote:

> Sorry, it's seems that there is a problem when you instanciate the
> SearchDealerPage instance
>
> How you instanciate it ?
>
> François
>
>
>
>
>
>
>
>
> Le 18 nov. 2015 à 17:46, Mihir Chhaya <mi...@gmail.com> a écrit :
>
> > Following are AbcUserSearchTO and AbcUser classes with DomainObject
> > implementation.
> >
> > public interface DomainObject extends Serializable {
> >
> >    Long getId();
> > }
> >
> > public class AbcUserSearchTO implements DomainObject {
> >
> > /**
> > *
> > */
> > private static final long serialVersionUID = 1L;
> >
> > /* (non-Javadoc)
> > * @see gov.fdle.fpp.domain.DomainObject#getId()
> > */
> > @Override
> > public Long getId() {
> > return null;
> > }
> > private String searchName;
> > private String searchDealer;
> >
> > /**
> > * @return the lastName
> > */
> > public String getSearchName() {
> > return searchName;
> > }
> >
> > /**
> > * @param name the lastName to set
> > */
> > public void setSearchName(String name) {
> >        if (name == null){
> >            name = FppConstants.EMPTY_STRING;
> >        }
> > this.searchName = name;
> > }
> >
> > /**
> > * @return the searchDealer
> > */
> > public String getSearchDealer() {
> > return searchDealer;
> > }
> >
> > /**
> > * @param searchDealer the searchDealer to set
> > */
> > public void setSearchDealer(String searchDealer) {
> > this.searchDealer = searchDealer;
> > }
> > }
> >
> >
> > public class AbcUser implements DomainObject {
> >
> > private static final long serialVersionUID = 1L;
> > public Long getId() {
> >        return null;
> >    }
> >
> > //ASM fields
> >    private long userNbr;
> >    private String userName;
> >    private String password;
> >    private String firstName;
> >    private String lastName;
> > ...setter
> > ....getter
> >
> > }
> >
> > On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
> > francois.meillet@gmail.com> wrote:
> >
> >> and the abcUserSearchTO ?
> >>
> >>
> >> François
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a écrit
> :
> >>
> >>> 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.meillet@gmail.com> wrote:
> >>>
> >>>> Could you show us the SearchDealerPage code
> >>>>
> >>>> François
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
> >>>>
> >>>>
> >>
> >>
>
>

Re: Wicket 7 - OutOfMemory PermGen

Posted by Francois Meillet <fr...@gmail.com>.
Sorry, it's seems that there is a problem when you instanciate the SearchDealerPage instance

How you instanciate it ?

François  








Le 18 nov. 2015 à 17:46, Mihir Chhaya <mi...@gmail.com> a écrit :

> Following are AbcUserSearchTO and AbcUser classes with DomainObject
> implementation.
> 
> public interface DomainObject extends Serializable {
> 
>    Long getId();
> }
> 
> public class AbcUserSearchTO implements DomainObject {
> 
> /**
> *
> */
> private static final long serialVersionUID = 1L;
> 
> /* (non-Javadoc)
> * @see gov.fdle.fpp.domain.DomainObject#getId()
> */
> @Override
> public Long getId() {
> return null;
> }
> private String searchName;
> private String searchDealer;
> 
> /**
> * @return the lastName
> */
> public String getSearchName() {
> return searchName;
> }
> 
> /**
> * @param name the lastName to set
> */
> public void setSearchName(String name) {
>        if (name == null){
>            name = FppConstants.EMPTY_STRING;
>        }
> this.searchName = name;
> }
> 
> /**
> * @return the searchDealer
> */
> public String getSearchDealer() {
> return searchDealer;
> }
> 
> /**
> * @param searchDealer the searchDealer to set
> */
> public void setSearchDealer(String searchDealer) {
> this.searchDealer = searchDealer;
> }
> }
> 
> 
> public class AbcUser implements DomainObject {
> 
> private static final long serialVersionUID = 1L;
> public Long getId() {
>        return null;
>    }
> 
> //ASM fields
>    private long userNbr;
>    private String userName;
>    private String password;
>    private String firstName;
>    private String lastName;
> ...setter
> ....getter
> 
> }
> 
> On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
> francois.meillet@gmail.com> wrote:
> 
>> and the abcUserSearchTO ?
>> 
>> 
>> François
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a écrit :
>> 
>>> 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.meillet@gmail.com> wrote:
>>> 
>>>> Could you show us the SearchDealerPage code
>>>> 
>>>> François
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
>>>> 
>>>> 
>> 
>> 


Re: Wicket 7 - OutOfMemory PermGen

Posted by Mihir Chhaya <mi...@gmail.com>.
Following are AbcUserSearchTO and AbcUser classes with DomainObject
implementation.

public interface DomainObject extends Serializable {

    Long getId();
}

public class AbcUserSearchTO implements DomainObject {

/**
*
*/
private static final long serialVersionUID = 1L;

/* (non-Javadoc)
* @see gov.fdle.fpp.domain.DomainObject#getId()
*/
@Override
public Long getId() {
return null;
}
private String searchName;
private String searchDealer;

/**
* @return the lastName
*/
public String getSearchName() {
return searchName;
}

/**
* @param name the lastName to set
*/
public void setSearchName(String name) {
        if (name == null){
            name = FppConstants.EMPTY_STRING;
        }
this.searchName = name;
}

/**
* @return the searchDealer
*/
public String getSearchDealer() {
return searchDealer;
}

/**
* @param searchDealer the searchDealer to set
*/
public void setSearchDealer(String searchDealer) {
this.searchDealer = searchDealer;
}
}


public class AbcUser implements DomainObject {

private static final long serialVersionUID = 1L;
public Long getId() {
        return null;
    }

//ASM fields
    private long userNbr;
    private String userName;
    private String password;
    private String firstName;
    private String lastName;
...setter
....getter

}

On Wed, Nov 18, 2015 at 11:43 AM, Francois Meillet <
francois.meillet@gmail.com> wrote:

> and the abcUserSearchTO ?
>
>
> François
>
>
>
>
>
>
>
>
> Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a écrit :
>
> > 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.meillet@gmail.com> wrote:
> >
> >> Could you show us the SearchDealerPage code
> >>
> >> François
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
> >>
> >>
>
>

Re: Wicket 7 - OutOfMemory PermGen

Posted by Francois Meillet <fr...@gmail.com>.
and the abcUserSearchTO ?


François 








Le 18 nov. 2015 à 17:40, Mihir Chhaya <mi...@gmail.com> a écrit :

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


Re: Wicket 7 - OutOfMemory PermGen

Posted by Mihir Chhaya <mi...@gmail.com>.
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.meillet@gmail.com> wrote:

> Could you show us the SearchDealerPage code
>
> François
>
>
>
>
>
>
>
>
> Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.
>
>

Re: Wicket 7 - OutOfMemory PermGen

Posted by Francois Meillet <fr...@gmail.com>.
Could you show us the SearchDealerPage code

François 








Le 18 nov. 2015 à 17:25, Mihir Chhaya <mi...@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.


Re: Wicket 7 - OutOfMemory PermGen

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

Do you use 7.0.0?
Because there was a problem -
https://issues.apache.org/jira/browse/WICKET-5978
It is fixed in 7.1.0

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Nov 18, 2015 at 5:25 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> 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.
>