Re: Wicket 7 - OutOfMemory PermGen
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 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 > > wrote: > > > > > First, Thanks Francois for your quick looking into this. > > > > > > The SearchDealerPage is created as below. The link is menu option. > > > > > > BookmarkablePageLink dealerInquiryLink = new > > > BookmarkablePageLink("dealerInquiryLink", > SearchDealerPage.class, > > > searchPageParameters); > > > > > > > > > Thanks, > > > > > > -Mihir. > > > > > > > > > On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet < > > > francois.meil...@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 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.meil...@gmail.com> wrote: > > >> > > > >> >> and the abcUserSearchTO ? > > >> >> > > >> >> > > >> >> François > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 o
Re: Wicket 7 - OutOfMemory PermGen
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 > wrote: > > > First, Thanks Francois for your quick looking into this. > > > > The SearchDealerPage is created as below. The link is menu option. > > > > BookmarkablePageLink dealerInquiryLink = new > > BookmarkablePageLink("dealerInquiryLink", SearchDealerPage.class, > > searchPageParameters); > > > > > > Thanks, > > > > -Mihir. > > > > > > On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet < > > francois.meil...@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 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.meil...@gmail.com> wrote: > >> > > >> >> and the abcUserSearchTO ? > >> >> > >> >> > >> >> François > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya 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
Re: Wicket 7 - OutOfMemory PermGen
Martin, Yes. I am using Wicket 7.00. On Wed, Nov 18, 2015 at 11:55 AM, Mihir Chhaya wrote: > First, Thanks Francois for your quick looking into this. > > The SearchDealerPage is created as below. The link is menu option. > > BookmarkablePageLink dealerInquiryLink = new > BookmarkablePageLink("dealerInquiryLink", SearchDealerPage.class, > searchPageParameters); > > > Thanks, > > -Mihir. > > > On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet < > francois.meil...@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 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.meil...@gmail.com> wrote: >> > >> >> and the abcUserSearchTO ? >> >> >> >> >> >> François >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 searchForm = >> >>> new Form("searchForm", new >> >>
Re: Wicket 7 - OutOfMemory PermGen
First, Thanks Francois for your quick looking into this. The SearchDealerPage is created as below. The link is menu option. BookmarkablePageLink dealerInquiryLink = new BookmarkablePageLink("dealerInquiryLink", SearchDealerPage.class, searchPageParameters); Thanks, -Mihir. On Wed, Nov 18, 2015 at 11:50 AM, Francois Meillet < francois.meil...@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 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.meil...@gmail.com> wrote: > > > >> and the abcUserSearchTO ? > >> > >> > >> François > >> > >> > >> > >> > >> > >> > >> > >> > >> Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 searchForm = > >>> new Form("searchForm", new > >>> CompoundPropertyModel(abcUserSearch)); > >>> searchForm.setOutputMarkupId(true); > >>> searchForm.setMarkupId("searchFormId"); > >>> add(searchForm); > >>> final Label pagetitle = new Label("pageTitle", new > >> Model()); > >>> > >>> if (abcConstants.UPDATE_
Re: Wicket 7 - OutOfMemory PermGen
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 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.(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.
Re: Wicket 7 - OutOfMemory PermGen
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 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.meil...@gmail.com> wrote: > >> and the abcUserSearchTO ? >> >> >> François >> >> >> >> >> >> >> >> >> Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 searchForm = >>> new Form("searchForm", new >>> CompoundPropertyModel(abcUserSearch)); >>> searchForm.setOutputMarkupId(true); >>> searchForm.setMarkupId("searchFormId"); >>> add(searchForm); >>> final Label pagetitle = new Label("pageTitle", new >> Model()); >>> >>> 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 dealerIDFld = new >>> ErroringTextField("searchDealer"); >>> dealerIDFld.setOutputMarkupId(true); >>> dealerIDFld.setMarkupId("searchDealer"); >>> dealerIDFld.setRequired(true); >>> dealerIDFld.add(StringValidator.minimumLength(2)); >>> dealerIDFld.add(new DefaultFocusBehavior()); >>> >>> if
Re: Wicket 7 - OutOfMemory PermGen
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.meil...@gmail.com> wrote: > and the abcUserSearchTO ? > > > François > > > > > > > > > Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 searchForm = > >new Form("searchForm", new > > CompoundPropertyModel(abcUserSearch)); > >searchForm.setOutputMarkupId(true); > >searchForm.setMarkupId("searchFormId"); > >add(searchForm); > >final Label pagetitle = new Label("pageTitle", new > Model()); > > > >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 dealerIDFld = new > > ErroringTextField("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; > > > >@Overrid
Re: Wicket 7 - OutOfMemory PermGen
and the abcUserSearchTO ? François Le 18 nov. 2015 à 17:40, Mihir Chhaya 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 searchForm = >new Form("searchForm", new > CompoundPropertyModel(abcUserSearch)); >searchForm.setOutputMarkupId(true); >searchForm.setMarkupId("searchFormId"); >add(searchForm); >final Label pagetitle = new Label("pageTitle", new Model()); > >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 dealerIDFld = new > ErroringTextField("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()); > >
Re: Wicket 7 - OutOfMemory PermGen
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 searchForm = new Form("searchForm", new CompoundPropertyModel(abcUserSearch)); searchForm.setOutputMarkupId(true); searchForm.setMarkupId("searchFormId"); add(searchForm); final Label pagetitle = new Label("pageTitle", new Model()); 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 dealerIDFld = new ErroringTextField("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(callingF
Re: Wicket 7 - OutOfMemory PermGen
Could you show us the SearchDealerPage code François Le 18 nov. 2015 à 17:25, Mihir Chhaya 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.(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(Defau
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.(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.PageProvi