Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Francois Meillet
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();
> 
> 

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Mihir Chhaya
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

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Mihir Chhaya
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;
> 

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Martin Grigorov
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!
> 

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Mihir Chhaya
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
> >> 

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread 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 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
>> >>>   

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Francois Meillet
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));
>>>   

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Christos Stieglitz
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
> >> >>> * 

Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Mihir Chhaya
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

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Francois Meillet
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
> 

Re: Wicket 7 - OutOfMemory PermGen

2015-11-18 Thread Mihir Chhaya
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