Fast2WicketSerializer StackOverflowError

2019-06-21 Thread Francois Meillet
Hi,

I get a strange StackOverflowError with Fast2WicketSerializer

Env : Wicket version 9.0.0.M2 and previous with Fast2WicketSerializer
quickstart : https://issues.apache.org/jira/browse/WICKET-6679


When Session.get() is called in a non serialized object
and session.getMetaData(MetaDataKey) is in a serialized object
there is a StackOverflowError

Will produce a StackOverflowError
@Override
protected void onInitialize() {
super.onInitialize();

Session session = Session.get();

add(new AjaxLink("link") {

@Override
public void onClick(AjaxRequestTarget target) {

Boolean showgrid = session.getMetaData(KeyGrid);

// 
}
});
}

Will not produce StackOverflowError
@Override
protected void onInitialize() {
super.onInitialize();

add(new AjaxLink("link") {

@Override
public void onClick(AjaxRequestTarget target) {

Boolean showgrid = Session.get().getMetaData(KeyGrid);

// 
}
});
}


Exception in thread "Wicket-AsyncPageStore-PageSavingThread" 
java.lang.StackOverflowError
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectCompatibleRecursive(FSTObjectOutput.java:568)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectCompatible(FSTObjectOutput.java:554)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:450)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:369)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectFields(FSTObjectOutput.java:664)
at 
org.nustaq.serialization.FSTObjectOutput.defaultWriteObject(FSTObjectOutput.java:546)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:458)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:369)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectFields(FSTObjectOutput.java:664)
at 
org.nustaq.serialization.FSTObjectOutput.defaultWriteObject(FSTObjectOutput.java:546)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:458)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:369)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectFields(FSTObjectOutput.java:664)
at 
org.nustaq.serialization.FSTObjectOutput.defaultWriteObject(FSTObjectOutput.java:546)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:458)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectInternal(FSTObjectOutput.java:327)
at 
org.nustaq.serialization.serializers.FSTArrayListSerializer.writeObject(FSTArrayListSerializer.java:49)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:476)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:369)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectFields(FSTObjectOutput.java:664)
at 
org.nustaq.serialization.FSTObjectOutput.defaultWriteObject(FSTObjectOutput.java:546)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:458)
at 
org.nustaq.serialization.FSTObjectOutput.writeObjectInternal(FSTObjectOutput.java:327)
at 
org.nustaq.serialization.FSTObjectOutput.writeObject(FSTObjectOutput.java:294)
at 
org.nustaq.serialization.FSTObjectOutput.writeObject(FSTObjectOutput.java:204)
at 
org.wicketstuff.pageserializer.fast2.Fast2WicketSerializer.serialize(Fast2WicketSerializer.java:77)
at 
org.apache.wicket.pageStore.InSessionPageStore$SessionData.writeObject(InSessionPageStore.java:317)



Do I miss something with the MetaData ?

François




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



Re: wicket 6.x / FeedbackPanel StackOverflowError

2016-05-14 Thread Korbinian Bachl
Thank you Tobias,

I followed your advice and it worked, after looking at 
https://ci.apache.org/projects/wicket/guide/6.x/guide/componentLifecycle.html 
it seems the best way to fix this is e.g.:

@Override
protected void onConfigure() {
if(loginForm.hasError()) {
setVisible(true);
} else {
setVisible(false);
}
}

The lifecycle is a bit off from my wicket 1.3/ 1.4 memories it seems :)

Best,

Korbinian


- Ursprüngliche Mail -
> Von: "Tobias Soloschenko" 
> An: users@wicket.apache.org
> Gesendet: Samstag, 14. Mai 2016 14:07:51
> Betreff: Re: wicket 6.x / FeedbackPanel StackOverflowError

> Hi,
> 
> try to set the visibility in onConfigure and store it as field in that local
> anonymous class - (return myVisibilityField;)
> 
> kind regards
> 
> Tobias
> 
>> Am 14.05.2016 um 13:23 schrieb Korbinian Bachl 
>> :
>> 
>> Hello,
>> 
>> I'm currently migrating a wicket / brix application from wicket 1.4 to wicket
>> 6.23; So far most seems well, but there is a thing I'm really stuck at. My 
>> code
>> uses FeedbackPanel regularly like this (on many many pages/ tiles):
>> 
>> loginForm.add(new FeedbackPanel("feedBack") {
>>private static final long serialVersionUID = 
>> -2594094600209896717L;
>> 
>>@Override
>>public boolean isVisible() {
>>return loginForm.hasError();
>>}
>> 
>> 
>>}.setEscapeModelStrings(false));
>> 
>> and this worked fine in wicket 1.4; With wicket 6 now if I access a page
>> containing this I get
>> 
>> [2016-05-14T13:14:48.163+0200] [Payara 4.1] [WARNING] [] 
>> [javax.enterprise.web]
>> [tid: _ThreadID=33 _ThreadName=http-listener-2(1)] [timeMillis: 
>> 1463224488163]
>> [levelValue: 900] [[
>>  StandardWrapperValve[default]: Servlet.service() for servlet default threw
>>  exception
>> java.lang.StackOverflowError
>>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
>>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
>>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>>at 
>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
>>at 
>> org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
>>at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
>>at xxx.login.LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
>>at org.apache.wicket.Component.determineVisibility(Component.java:4347)
>>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2138)
>>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
>>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
>>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>>at 
>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
>>at 
>> org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
>>at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
>>at .LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
>>  repeating the error dozens of times;
>> 
>> Did anything change here that makes the good old isVisible() not usable 
>> anymore?
>> 
>> 
>> Best,
>> 
>> Korbinian
>> 
>> 
>> 
>> 
>> 
>> 
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org

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



Re: wicket 6.x / FeedbackPanel StackOverflowError

2016-05-14 Thread Tobias Soloschenko
Hi,

try to set the visibility in onConfigure and store it as field in that local 
anonymous class - (return myVisibilityField;)

kind regards

Tobias

> Am 14.05.2016 um 13:23 schrieb Korbinian Bachl 
> :
> 
> Hello,
> 
> I'm currently migrating a wicket / brix application from wicket 1.4 to wicket 
> 6.23; So far most seems well, but there is a thing I'm really stuck at. My 
> code uses FeedbackPanel regularly like this (on many many pages/ tiles):
> 
> loginForm.add(new FeedbackPanel("feedBack") {
>private static final long serialVersionUID = -2594094600209896717L;
> 
>@Override
>public boolean isVisible() {
>return loginForm.hasError();
>}
> 
> 
>}.setEscapeModelStrings(false));
> 
> and this worked fine in wicket 1.4; With wicket 6 now if I access a page 
> containing this I get 
> 
> [2016-05-14T13:14:48.163+0200] [Payara 4.1] [WARNING] [] 
> [javax.enterprise.web] [tid: _ThreadID=33 _ThreadName=http-listener-2(1)] 
> [timeMillis: 1463224488163] [levelValue: 900] [[
>  StandardWrapperValve[default]: Servlet.service() for servlet default threw 
> exception
> java.lang.StackOverflowError
>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
>at 
> org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
>at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
>at xxx.login.LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
>at org.apache.wicket.Component.determineVisibility(Component.java:4347)
>at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2138)
>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
>at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
>at 
> org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
>at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
>at .LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
>  repeating the error dozens of times;
> 
> Did anything change here that makes the good old isVisible() not usable 
> anymore?
> 
> 
> Best,
> 
> Korbinian
> 
> 
> 
> 
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 

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



wicket 6.x / FeedbackPanel StackOverflowError

2016-05-14 Thread Korbinian Bachl
Hello,

I'm currently migrating a wicket / brix application from wicket 1.4 to wicket 
6.23; So far most seems well, but there is a thing I'm really stuck at. My code 
uses FeedbackPanel regularly like this (on many many pages/ tiles):

loginForm.add(new FeedbackPanel("feedBack") {
private static final long serialVersionUID = -2594094600209896717L;

@Override
public boolean isVisible() {
return loginForm.hasError();
}


}.setEscapeModelStrings(false));

and this worked fine in wicket 1.4; With wicket 6 now if I access a page 
containing this I get 

[2016-05-14T13:14:48.163+0200] [Payara 4.1] [WARNING] [] [javax.enterprise.web] 
[tid: _ThreadID=33 _ThreadName=http-listener-2(1)] [timeMillis: 1463224488163] 
[levelValue: 900] [[
  StandardWrapperValve[default]: Servlet.service() for servlet default threw 
exception
java.lang.StackOverflowError
at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2132)
at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
at 
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
at 
org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
at xxx.login.LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
at org.apache.wicket.Component.determineVisibility(Component.java:4347)
at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2138)
at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1161)
at org.apache.wicket.markup.html.form.Form$8.component(Form.java:1157)
at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
at 
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
at 
org.apache.wicket.markup.html.form.Form.anyFormComponentError(Form.java:1156)
at org.apache.wicket.markup.html.form.Form.hasError(Form.java:667)
at .LoginExistingPanel$2.isVisible(LoginExistingPanel.java:92)
 repeating the error dozens of times;

Did anything change here that makes the good old isVisible() not usable anymore?


Best,

Korbinian






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



Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-18 Thread Francois Meillet
sounds good

François 








Le 18 févr. 2016 à 10:43, Martin Grigorov  a écrit :

> I'd suggest to fix it by:
> 1) in Wicket 7.x upgrade Jackson to 2.6.latest and add the second method
> 2) in Wicket 8.x upgrade to 2.7.latest and update the argument.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Thu, Feb 18, 2016 at 10:39 AM, Francois Meillet <
> francois.meil...@gmail.com> wrote:
> 
>> 
>> Before the 7.0.0 release, wicket-extension used
>> 
>>org.codehaus.jackson
>>jackson-mapper-asl
>>1.8.5
>> 
>> So no change can be done.
>> 
>> 
>> 7.0.0, 7.1.0 and 7.2.0 use
>> 
>>com.fasterxml.jackson.core
>>jackson-databind
>>2.4.1.3
>> 
>> 
>> 
>> JacksonAnnotationIntrospector
>> 
>>/**
>> * @deprecated (since 2.3) Use {@link #findFilterId(Annotated)} instead
>> */
>>@Deprecated
>>@Override
>>public Object findFilterId(AnnotatedClass ac) {
>>return _findFilterId(ac);
>>}
>> 
>>@Override
>>public Object findFilterId(Annotated a) {
>>return _findFilterId(a);
>>}
>> 
>> so the findFilterId(Annotated a) can be used in the JsonRequestLogger #
>> FilteredIntrospector
>> 
>> 
>> findFilterId(AnnotatedClass ac) has been removed from the 2.7 release.
>> 
>> 
>> The sole Wicket' class using Jackson I found is
>> JacksonAnnotationIntrospector,
>> so using Jackson 2.7.1 release can be done.
>> Tested. ok.
>> 
>> François
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Le 18 févr. 2016 à 09:43, Martin Grigorov  a écrit :
>> 
>>> Good!
>>> 
>>> The question now is how to introduce this change without breaking old
>>> applications.
>>> Having both methods looks like a solution but it may break if the
>>> application uses older version of Jackson.
>>> I think it should work.
>>> Can you try it ?
>>> 
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Thu, Feb 18, 2016 at 9:35 AM, Francois Meillet <
>>> francois.meil...@gmail.com> wrote:
>>> 
>>>> Hi Martin,
>>>> 
>>>> Jackson JacksonAnnotationIntrospector # findFilterId() method signature
>>>> has been changed
>>>> 
>>>> from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a)
>>>> 
>>>> 
>>>>   in the JsonRequestLogger, changing this
>>>> 
>>>>   private static final class FilteredIntrospector extends
>>>> JacksonAnnotationIntrospector
>>>>   {
>>>>   @Override
>>>>   public Object findFilterId(AnnotatedClass ac)
>>>>   {
>>>>   return "default";
>>>>   }
>>>>   }
>>>> 
>>>> 
>>>>   to that resolved the problem
>>>> 
>>>>   private static final class FilteredIntrospector extends
>>>> JacksonAnnotationIntrospector
>>>>   {
>>>>   @Override
>>>>   public Object findFilterId(Annotated a)
>>>>   {
>>>>   return "default";
>>>>   }
>>>>   }
>>>> 
>>>> 
>>>> François
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> Le 18 févr. 2016 à 08:24, Martin Grigorov  a
>> écrit :
>>>> 
>>>>> Hi,
>>>>> 
>>>>> 
>>>>> On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
>>>>> francois.meil...@gmail.com> wrote:
>>>>> 
>>>>>> Dear Team,
>>>>>> 
>>>>>> The JsonRequestLogger is not working correctly:
>>>>>> 
>>>>>> JsonRequestLogger --> JsonMappingException --> StackOverflowError
>>>> Infinite
>>>>>> recursion
>>>>>> 
>>>>>> Wicket : 7.2.0
>>>>>> Jackson : 2.7.1
>>>>>> 
>>>>>> JsonRequestLogger throw a JsonMappingException when 

Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-18 Thread Martin Grigorov
I'd suggest to fix it by:
1) in Wicket 7.x upgrade Jackson to 2.6.latest and add the second method
2) in Wicket 8.x upgrade to 2.7.latest and update the argument.

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

On Thu, Feb 18, 2016 at 10:39 AM, Francois Meillet <
francois.meil...@gmail.com> wrote:

>
> Before the 7.0.0 release, wicket-extension used
>
> org.codehaus.jackson
> jackson-mapper-asl
> 1.8.5
>
> So no change can be done.
>
>
> 7.0.0, 7.1.0 and 7.2.0 use
>
> com.fasterxml.jackson.core
> jackson-databind
> 2.4.1.3
>
>
>
> JacksonAnnotationIntrospector
>
> /**
>  * @deprecated (since 2.3) Use {@link #findFilterId(Annotated)} instead
>  */
> @Deprecated
> @Override
> public Object findFilterId(AnnotatedClass ac) {
> return _findFilterId(ac);
> }
>
> @Override
> public Object findFilterId(Annotated a) {
> return _findFilterId(a);
> }
>
> so the findFilterId(Annotated a) can be used in the JsonRequestLogger #
> FilteredIntrospector
>
>
> findFilterId(AnnotatedClass ac) has been removed from the 2.7 release.
>
>
> The sole Wicket' class using Jackson I found is
> JacksonAnnotationIntrospector,
> so using Jackson 2.7.1 release can be done.
> Tested. ok.
>
> François
>
>
>
>
>
>
>
> Le 18 févr. 2016 à 09:43, Martin Grigorov  a écrit :
>
> > Good!
> >
> > The question now is how to introduce this change without breaking old
> > applications.
> > Having both methods looks like a solution but it may break if the
> > application uses older version of Jackson.
> > I think it should work.
> > Can you try it ?
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Thu, Feb 18, 2016 at 9:35 AM, Francois Meillet <
> > francois.meil...@gmail.com> wrote:
> >
> >> Hi Martin,
> >>
> >> Jackson JacksonAnnotationIntrospector # findFilterId() method signature
> >> has been changed
> >>
> >> from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a)
> >>
> >>
> >>in the JsonRequestLogger, changing this
> >>
> >>private static final class FilteredIntrospector extends
> >> JacksonAnnotationIntrospector
> >>{
> >>@Override
> >>public Object findFilterId(AnnotatedClass ac)
> >>{
> >>return "default";
> >>}
> >>}
> >>
> >>
> >>to that resolved the problem
> >>
> >>private static final class FilteredIntrospector extends
> >> JacksonAnnotationIntrospector
> >>{
> >>@Override
> >>public Object findFilterId(Annotated a)
> >>{
> >>return "default";
> >>}
> >>}
> >>
> >>
> >> François
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Le 18 févr. 2016 à 08:24, Martin Grigorov  a
> écrit :
> >>
> >>> Hi,
> >>>
> >>>
> >>> On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
> >>> francois.meil...@gmail.com> wrote:
> >>>
> >>>> Dear Team,
> >>>>
> >>>> The JsonRequestLogger is not working correctly:
> >>>>
> >>>> JsonRequestLogger --> JsonMappingException --> StackOverflowError
> >> Infinite
> >>>> recursion
> >>>>
> >>>> Wicket : 7.2.0
> >>>> Jackson : 2.7.1
> >>>>
> >>>> JsonRequestLogger throw a JsonMappingException when executing
> >>>> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd));
> >>>>
> >>>> java.lang.RuntimeException:
> >>>> com.fasterxml.jackson.databind.JsonMappingException:
> >>>> Infinite recursion (StackOverflowError)
> >>>> (through reference chain:
> >>>>
> >>
> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.

Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-18 Thread Francois Meillet

Before the 7.0.0 release, wicket-extension used 

org.codehaus.jackson
jackson-mapper-asl
1.8.5

So no change can be done.


7.0.0, 7.1.0 and 7.2.0 use

com.fasterxml.jackson.core
jackson-databind
2.4.1.3



JacksonAnnotationIntrospector 

/**
 * @deprecated (since 2.3) Use {@link #findFilterId(Annotated)} instead
 */
@Deprecated
@Override
public Object findFilterId(AnnotatedClass ac) {
return _findFilterId(ac);
}

@Override
public Object findFilterId(Annotated a) {
return _findFilterId(a);
}

so the findFilterId(Annotated a) can be used in the JsonRequestLogger # 
FilteredIntrospector


findFilterId(AnnotatedClass ac) has been removed from the 2.7 release.


The sole Wicket' class using Jackson I found is JacksonAnnotationIntrospector,
so using Jackson 2.7.1 release can be done.
Tested. ok.

François 







Le 18 févr. 2016 à 09:43, Martin Grigorov  a écrit :

> Good!
> 
> The question now is how to introduce this change without breaking old
> applications.
> Having both methods looks like a solution but it may break if the
> application uses older version of Jackson.
> I think it should work.
> Can you try it ?
> 
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Thu, Feb 18, 2016 at 9:35 AM, Francois Meillet <
> francois.meil...@gmail.com> wrote:
> 
>> Hi Martin,
>> 
>> Jackson JacksonAnnotationIntrospector # findFilterId() method signature
>> has been changed
>> 
>> from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a)
>> 
>> 
>>in the JsonRequestLogger, changing this
>> 
>>private static final class FilteredIntrospector extends
>> JacksonAnnotationIntrospector
>>{
>>@Override
>>public Object findFilterId(AnnotatedClass ac)
>>{
>>return "default";
>>}
>>}
>> 
>> 
>>to that resolved the problem
>> 
>>private static final class FilteredIntrospector extends
>> JacksonAnnotationIntrospector
>>{
>>@Override
>>public Object findFilterId(Annotated a)
>>{
>>return "default";
>>}
>>}
>> 
>> 
>> François
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Le 18 févr. 2016 à 08:24, Martin Grigorov  a écrit :
>> 
>>> Hi,
>>> 
>>> 
>>> On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
>>> francois.meil...@gmail.com> wrote:
>>> 
>>>> Dear Team,
>>>> 
>>>> The JsonRequestLogger is not working correctly:
>>>> 
>>>> JsonRequestLogger --> JsonMappingException --> StackOverflowError
>> Infinite
>>>> recursion
>>>> 
>>>> Wicket : 7.2.0
>>>> Jackson : 2.7.1
>>>> 
>>>> JsonRequestLogger throw a JsonMappingException when executing
>>>> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd));
>>>> 
>>>> java.lang.RuntimeException:
>>>> com.fasterxml.jackson.databind.JsonMappingException:
>>>> Infinite recursion (StackOverflowError)
>>>> (through reference chain:
>>>> 
>> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->
>>>> 
>>>> 
>>>> at
>>>> 
>> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.getLogString(JsonRequestLogger.java:141)
>>>> ~[wicket-extensions-7.2.0.jar:7.2.0]
>>>> at
>>>> 
>> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.log(JsonRequestLogger.java:125)
>>>> ~[wicket-extensions-7.2.0.jar:7.2.0]
>>>> at
>>>> 
>> org.apache.wicket.protocol.http.AbstractRequestLogger.performLogging(AbstractRequestLogger.java:325)
>>>> ~[wicket-core-7.2.0.jar:7.2.0]
>>>> at
>>>> 
>> org.apache.wicket.request.cycle.RequestCycle.onInternalDetach(RequestCycle.java:620)
>>>> ~[wicket-core-7.2.0.jar:7.2.0]
>>>> at
>>>> 
>> org.apache.wicke

Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-18 Thread Martin Grigorov
Good!

The question now is how to introduce this change without breaking old
applications.
Having both methods looks like a solution but it may break if the
application uses older version of Jackson.
I think it should work.
Can you try it ?


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

On Thu, Feb 18, 2016 at 9:35 AM, Francois Meillet <
francois.meil...@gmail.com> wrote:

> Hi Martin,
>
> Jackson JacksonAnnotationIntrospector # findFilterId() method signature
> has been changed
>
> from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a)
>
>
> in the JsonRequestLogger, changing this
>
> private static final class FilteredIntrospector extends
> JacksonAnnotationIntrospector
> {
> @Override
> public Object findFilterId(AnnotatedClass ac)
> {
> return "default";
> }
> }
>
>
> to that resolved the problem
>
> private static final class FilteredIntrospector extends
> JacksonAnnotationIntrospector
> {
> @Override
> public Object findFilterId(Annotated a)
> {
> return "default";
> }
> }
>
>
> François
>
>
>
>
>
>
>
>
> Le 18 févr. 2016 à 08:24, Martin Grigorov  a écrit :
>
> > Hi,
> >
> >
> > On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
> > francois.meil...@gmail.com> wrote:
> >
> >> Dear Team,
> >>
> >> The JsonRequestLogger is not working correctly:
> >>
> >> JsonRequestLogger --> JsonMappingException --> StackOverflowError
> Infinite
> >> recursion
> >>
> >> Wicket : 7.2.0
> >> Jackson : 2.7.1
> >>
> >> JsonRequestLogger throw a JsonMappingException when executing
> >> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd));
> >>
> >> java.lang.RuntimeException:
> >> com.fasterxml.jackson.databind.JsonMappingException:
> >> Infinite recursion (StackOverflowError)
> >> (through reference chain:
> >>
> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->
> >>
> >>
> >> at
> >>
> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.getLogString(JsonRequestLogger.java:141)
> >> ~[wicket-extensions-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.log(JsonRequestLogger.java:125)
> >> ~[wicket-extensions-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.protocol.http.AbstractRequestLogger.performLogging(AbstractRequestLogger.java:325)
> >> ~[wicket-core-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.request.cycle.RequestCycle.onInternalDetach(RequestCycle.java:620)
> >> ~[wicket-core-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:600)
> >> ~[wicket-core-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297)
> >> ~[wicket-core-7.2.0.jar:7.2.0]
> >> at
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> ~[wicket-core-7.2.0.jar:7.2.0]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:694)
> >> ~[jackson-databind-2.7.1.jar:2.7.1]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
> >> ~[jackson-databind-2.7.1.jar:2.7.1]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
> >> ~[jackson-databind-2.7.1.jar:2.7.1]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
> >> ~[jackson-databind-2.7.1.jar:2.7.1]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
> >> ~[jackson-databind-2.7.1.jar:2.7.1]
> >> at
> >>
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
> >> ~[jackson-data

Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-18 Thread Francois Meillet
Hi Martin,

Jackson JacksonAnnotationIntrospector # findFilterId() method signature has 
been changed

from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a) 


in the JsonRequestLogger, changing this  

private static final class FilteredIntrospector extends 
JacksonAnnotationIntrospector
{
@Override
public Object findFilterId(AnnotatedClass ac)
{
return "default";
}
}   
   
   
to that resolved the problem

private static final class FilteredIntrospector extends 
JacksonAnnotationIntrospector
{
@Override
public Object findFilterId(Annotated a) 
{
return "default";
}
}
  

François 








Le 18 févr. 2016 à 08:24, Martin Grigorov  a écrit :

> Hi,
> 
> 
> On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
> francois.meil...@gmail.com> wrote:
> 
>> Dear Team,
>> 
>> The JsonRequestLogger is not working correctly:
>> 
>> JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite
>> recursion
>> 
>> Wicket : 7.2.0
>> Jackson : 2.7.1
>> 
>> JsonRequestLogger throw a JsonMappingException when executing
>> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd));
>> 
>> java.lang.RuntimeException:
>> com.fasterxml.jackson.databind.JsonMappingException:
>> Infinite recursion (StackOverflowError)
>> (through reference chain:
>> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->
>> 
>> 
>> at
>> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.getLogString(JsonRequestLogger.java:141)
>> ~[wicket-extensions-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.log(JsonRequestLogger.java:125)
>> ~[wicket-extensions-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.protocol.http.AbstractRequestLogger.performLogging(AbstractRequestLogger.java:325)
>> ~[wicket-core-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.onInternalDetach(RequestCycle.java:620)
>> ~[wicket-core-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:600)
>> ~[wicket-core-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297)
>> ~[wicket-core-7.2.0.jar:7.2.0]
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> ~[wicket-core-7.2.0.jar:7.2.0]
>> at
>> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:694)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> at
>> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
>> ~[jackson-databind-2.7.1.jar:2.7.1]
>> 
>> 
>> https://issues.apache.org/jira/browse/WICKET-6097
>> 
> 
> I'll debug it when I have some time.
> 
> 
>> 
>> 
>> BTW, is it worth to mainten this logger ?
>> 
> 
> AFAIK Martijn and Emond use it in their application.
> But if it fails always with this then maybe they don't use it anymore. Or
> they use it with an older version of Jackson. I've had some problems with
> Jackson backward compatibility lately.
> 
> 
>> 
>> 
>> François
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 



Re: JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite recursion

2016-02-17 Thread Martin Grigorov
Hi,


On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet <
francois.meil...@gmail.com> wrote:

> Dear Team,
>
> The JsonRequestLogger is not working correctly:
>
> JsonRequestLogger --> JsonMappingException --> StackOverflowError Infinite
> recursion
>
> Wicket : 7.2.0
> Jackson : 2.7.1
>
> JsonRequestLogger throw a JsonMappingException when executing
> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd));
>
> java.lang.RuntimeException:
> com.fasterxml.jackson.databind.JsonMappingException:
> Infinite recursion (StackOverflowError)
> (through reference chain:
> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->
>
>
> at
> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.getLogString(JsonRequestLogger.java:141)
> ~[wicket-extensions-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.log(JsonRequestLogger.java:125)
> ~[wicket-extensions-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.protocol.http.AbstractRequestLogger.performLogging(AbstractRequestLogger.java:325)
> ~[wicket-core-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.onInternalDetach(RequestCycle.java:620)
> ~[wicket-core-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:600)
> ~[wicket-core-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297)
> ~[wicket-core-7.2.0.jar:7.2.0]
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> ~[wicket-core-7.2.0.jar:7.2.0]
> at
> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:694)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
> ~[jackson-databind-2.7.1.jar:2.7.1]
> at
> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
> ~[jackson-databind-2.7.1.jar:2.7.1]
>
>
> https://issues.apache.org/jira/browse/WICKET-6097
>

I'll debug it when I have some time.


>
>
> BTW, is it worth to mainten this logger ?
>

AFAIK Martijn and Emond use it in their application.
But if it fails always with this then maybe they don't use it anymore. Or
they use it with an older version of Jackson. I've had some problems with
Jackson backward compatibility lately.


>
>
> François
>
>
>
>
>
>
>
>
>
>
>
>
>


Re: Wicket StackOverflowError in Serializing or Seserializing Session

2014-07-31 Thread hoosssein
thanks a a lot.
I found the object that did not implement Serializable.


On Mon, Jul 28, 2014 at 1:56 PM, Martin Grigorov-4 [via Apache Wicket] <
ml-node+s1842946n4666765...@n4.nabble.com> wrote:

> Hi,
>
> Wicket will use CheckingObjectOutputStream in DEV mode only if the normal
> serialization has failed with NotSerializableException before that, to
> give
> you a better explanation which field in which class is the problem:
>
> https://github.com/apache/wicket/blob/442932d4e4c5cc27940bc2ef956cb24c1ba54df0/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java#L262
>
> Put a breakpoint inside the catch and see which class causes the
> NotSerializableException before the usage of CheckingObjectOutputStream.
>
> I have no idea why it fails with StackOverflowError.
>
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
>
> On Sun, Jul 27, 2014 at 9:01 PM, hoosssein <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=4666765&i=0>> wrote:
>
> > I'm using Wicket 6.15 and I got following exception in my program
> >
> > java.lang.StackOverflowError
> > at java.lang.Exception.(Exception.java:102)
> > at
> >
> >
> java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:89)
>
> > at
> >
> >
> java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72)
>
> > at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> > at java.lang.reflect.Method.invoke(Method.java:606)
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:398)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
>
> > at
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
>
> > ...
> >
> > I have no idea what can cause such StackOverFlow in wicket-core.
> >
> > I search for this exception and found that these part of exception are
> > belongs to Serialization. so I checked all of my object and all of them
> > implements Serializable
> >
> > an other interesting port of problem is that this exception doesn't
> occurs
> > at the first time, It occurs after i try to render component 2 or 3
> time.
> >
> > Any help would be greatly appreciated.
> >
> > --
> > View this message in context:
> >
> http://apache-wicket.1842946.n4.nabble.com/Wicket-StackOverflowError-in-Serializing-or-Seserializing-Session-tp4666758.html
> > Sent from the Users forum mailing list archive at Nabble.com.
> >
&g

Re: Wicket StackOverflowError in Serializing or Seserializing Session

2014-07-28 Thread Martin Grigorov
Hi,

Wicket will use CheckingObjectOutputStream in DEV mode only if the normal
serialization has failed with NotSerializableException before that, to give
you a better explanation which field in which class is the problem:
https://github.com/apache/wicket/blob/442932d4e4c5cc27940bc2ef956cb24c1ba54df0/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java#L262

Put a breakpoint inside the catch and see which class causes the
NotSerializableException before the usage of CheckingObjectOutputStream.

I have no idea why it fails with StackOverflowError.


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


On Sun, Jul 27, 2014 at 9:01 PM, hoosssein  wrote:

> I'm using Wicket 6.15 and I got following exception in my program
>
> java.lang.StackOverflowError
> at java.lang.Exception.(Exception.java:102)
> at
>
> java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:89)
> at
>
> java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72)
> at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:398)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
> at
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
> ...
>
> I have no idea what can cause such StackOverFlow in wicket-core.
>
> I search for this exception and found that these part of exception are
> belongs to Serialization. so I checked all of my object and all of them
> implements Serializable
>
> an other interesting port of problem is that this exception doesn't occurs
> at the first time, It occurs after i try to render component 2 or 3 time.
>
> Any help would be greatly appreciated.
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Wicket-StackOverflowError-in-Serializing-or-Seserializing-Session-tp4666758.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Wicket StackOverflowError in Serializing or Seserializing Session

2014-07-27 Thread hoosssein
I'm using Wicket 6.15 and I got following exception in my program

java.lang.StackOverflowError
at java.lang.Exception.(Exception.java:102)
at
java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:89)
at
java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:398)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.checkFields(CheckingObjectOutputStream.java:645)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.internalCheck(CheckingObjectOutputStream.java:569)
at
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream.check(CheckingObjectOutputStream.java:361)
...

I have no idea what can cause such StackOverFlow in wicket-core.

I search for this exception and found that these part of exception are
belongs to Serialization. so I checked all of my object and all of them
implements Serializable

an other interesting port of problem is that this exception doesn't occurs
at the first time, It occurs after i try to render component 2 or 3 time.

Any help would be greatly appreciated.

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Wicket-StackOverflowError-in-Serializing-or-Seserializing-Session-tp4666758.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: StackOverflowError in session creation

2012-03-30 Thread kshitiz
OhI made a stupid mistakesorry for that and thanks for solving my
problem...

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-in-session-creation-tp4516170p4521161.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: StackOverflowError in session creation

2012-03-29 Thread vineet semwal
ethod.java:601)
>     at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
>     at
> org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget.processEvents(BookmarkableListenerInterfaceRequestTarget.java:161)
>     at
> org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
>     at
> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1252)
>     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1331)
>     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1438)
>     at org.apache.wicket.RequestCycle.request(RequestCycle.java:546)
>     at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
>
> What is the reason behind this errorare too many sessions being
> created???
>
>
> --
> View this message in context: 
> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-in-session-creation-tp4516170p4516170.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>



-- 
thank you,

regards,
Vineet Semwal

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



Re: StackOverflowError

2010-11-22 Thread Erik van Oosten
I have seen an application (not mine!) fail horribly and costly on the second 
example.


The problem with getting an object from the session and passing the reference to 
a (Compound)PropertyModel is that the natural assumption, the session object is 
updated too, is wrong.
So this is exactly the same problem as keeping a reference to the session 
itself, only now restricted to less data.


Regards,
   Erik.




Op 22-11-10 20:51, Igor Vaynberg schreef:

no. the example below doesnt hit any pitfalls because it doesnt
reference the session itself. as long as objects retrieved from
session do not contain references back to session he is ok.

however, declaring Session instance as final is not a good idea
because it makes it easy to reference it in anonymous classes.

-igor

On Mon, Nov 22, 2010 at 11:49 AM, Erik van Oosten  wrote:

Yes, both are very wrong.

Pitfalls are in earlier messages in this thread.


On 22-11-10 16:36, mzem...@osc.state.ny.us wrote:

By "keep a reference to the session in their class" do you mean something
like this?

Are there any pitfalls to doing this?

final Session session = getSession();
add(new Label("userNameLabel", new Model(session.getUser
().getUserName(;

How about this?
final UserDTO dto = session.getUser();
CompoundPropertyModel cpm = new CompoundPropertyModel(dto);



--
Sent from my SMTP compliant software
Erik van Oosten
http://day-to-day-stuff.blogspot.com/



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



Re: StackOverflowError

2010-11-22 Thread Igor Vaynberg
no. the example below doesnt hit any pitfalls because it doesnt
reference the session itself. as long as objects retrieved from
session do not contain references back to session he is ok.

however, declaring Session instance as final is not a good idea
because it makes it easy to reference it in anonymous classes.

-igor

On Mon, Nov 22, 2010 at 11:49 AM, Erik van Oosten  wrote:
> Yes, both are very wrong.
>
> Pitfalls are in earlier messages in this thread.
>
>
> On 22-11-10 16:36, mzem...@osc.state.ny.us wrote:
>>
>> By "keep a reference to the session in their class" do you mean something
>> like this?
>>
>> Are there any pitfalls to doing this?
>>
>> final Session session = getSession();
>> add(new Label("userNameLabel", new Model(session.getUser
>> ().getUserName(;
>>
>> How about this?
>> final UserDTO dto = session.getUser();
>> CompoundPropertyModel cpm = new CompoundPropertyModel(dto);
>>
>
> --
> Sent from my SMTP compliant software
> Erik van Oosten
> http://day-to-day-stuff.blogspot.com/
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

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



Re: StackOverflowError

2010-11-22 Thread Erik van Oosten

Yes, both are very wrong.

Pitfalls are in earlier messages in this thread.


On 22-11-10 16:36, mzem...@osc.state.ny.us wrote:

By "keep a reference to the session in their class" do you mean something
like this?

Are there any pitfalls to doing this?

final Session session = getSession();
add(new Label("userNameLabel", new Model(session.getUser
().getUserName(;

How about this?
final UserDTO dto = session.getUser();
CompoundPropertyModel cpm = new CompoundPropertyModel(dto);



--
Sent from my SMTP compliant software
Erik van Oosten
http://day-to-day-stuff.blogspot.com/



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



Re: StackOverflowError

2010-11-22 Thread MZemeck
By "keep a reference to the session in their class" do you mean something 
like this?

Are there any pitfalls to doing this?

final Session session = getSession();
add(new Label("userNameLabel", new Model(session.getUser
().getUserName(;

How about this?
final UserDTO dto = session.getUser();
CompoundPropertyModel cpm = new CompoundPropertyModel(dto);




From:   Martijn Dashorst 
To: users@wicket.apache.org
Date:   11/20/2010 12:02 PM
Subject:Re: StackOverflowError



Problem is that there's no single super constructor. For Wicket all
really matters is the IModel interface of which many implementations
exist outside wicket as well. And it is of course not only the model
that is dangerous. Folks can easily keep a reference to the session in
their class, or make a local variable final and reference that inside
an anon-inner class.

It is not possible to make this water tight. As you are about the
first company running into this issue, I'd say it is not worth the
effort trying to fix it.

What we might do is add a check in the serializable checker and ensure
no wicket session ends up in the tree.

Martijn

On Sat, Nov 20, 2010 at 2:27 PM, Douglas Ferguson
 wrote:
> Why not just throw and illegal argument exception when you try to create 
a model with a session?
>
> D/
>
> On Nov 19, 2010, at 3:16 AM, Erik van Oosten wrote:
>
>> Pedro's solution allows you to turn serialisation on and off for a 
given thread so you won't mess with serialisation by other users (such as 
the servlet container).
>>
>> Clever. The only missing piece is an override of the default 
serialisation to temporarily flip the switch.
>>
>> Still, in core it would be much more useful. Users that can configure 
this kind of tricks don't tend to make the mistake of referring a session 
anyway.
>>
>> Regards,
>>Erik.
>>
>>
>> Op 18-11-10 18:31, Martijn Dashorst schreef:
>>> Sessions are meant to be serialized. That's the way they travel
>>> through a cluster, or how sessions are preserved during a server
>>> restart. I'd like to not break that by adding this functionality.
>>>
>>> Martijn
>>>
>>> On Thu, Nov 18, 2010 at 6:19 PM, Pedro Santos 
 wrote:
>>>> Ok, I still don't know how interest is to have it in the core. You 
can do it
>>>> at an session extension, like:
>>>>
>>>> 1- providing some API
>>>>
>>>> MySession extends Session{
>>>>private ThreadLocal  sessionSerializationRestrictor = new
>>>> ThreadLocal();
>>>>public void inhibitSerializationOnThread(Object restrictor){
>>>>sessionSerializationRestrictor.set(restrictor);   }
>>>>
>>>>public void removeSerializationRestriction(){
>>>>sessionSerializationRestrictor.set(null);}
>>>>
>>>>private void writeObject(java.io.ObjectOutputStream out) throws
>>>> IOException {
>>>>if (sessionSerializationRestrictor.get() != null) {
>>>>throw some exception explaining that the restrictor do not 
allow
>>>> this serialization;
>>>>} else {
>>>>out.defaultWriteObject();
>>>>} }}
>>>>
>>>> 2- providing some Page.IPageSerializer that calls
>>>> inhibitSerializationOnThread and removeSerializationRestriction 
before and
>>>> after the page serialization.
>>>>
>>>> On Thu, Nov 18, 2010 at 6:48 AM, Erik van 
Oostenwrote:
>>>>
>>>>> That won't work in general as some servlet containers (like tomcat)
>>>>> serialise the session to disk when its idle for too long.
>>>>>
>>>>> What I meant is that when the page is serialised, it _must_ not 
contain a
>>>>> reference to session.
>>>>>
>>>>>
>>>>>  but than some other developers can complain because they are 
deliberated
>>>>>> serialializing some session.
>>>>>>
>>>>> They won't complain when the exception text specifies why this is 
wrong.
>>>>> See Martijn's e-mail in this discussion thread for why it is wrong.
>>>>>
>>>>> Regards,
>>>>> Erik.
>>>>>
>>>>>
>>>>> Op 17-11-10 21:05, Pedro Santos schreef:
>>>>>
>>>>>  I think it is to specific. You can override the Session on your app 
an
>>>>>> catch
>>>>>> this situation like:
>>>>>&

Re: StackOverflowError

2010-11-20 Thread Martijn Dashorst
Problem is that there's no single super constructor. For Wicket all
really matters is the IModel interface of which many implementations
exist outside wicket as well. And it is of course not only the model
that is dangerous. Folks can easily keep a reference to the session in
their class, or make a local variable final and reference that inside
an anon-inner class.

It is not possible to make this water tight. As you are about the
first company running into this issue, I'd say it is not worth the
effort trying to fix it.

What we might do is add a check in the serializable checker and ensure
no wicket session ends up in the tree.

Martijn

On Sat, Nov 20, 2010 at 2:27 PM, Douglas Ferguson
 wrote:
> Why not just throw and illegal argument exception when you try to create a 
> model with a session?
>
> D/
>
> On Nov 19, 2010, at 3:16 AM, Erik van Oosten wrote:
>
>> Pedro's solution allows you to turn serialisation on and off for a given 
>> thread so you won't mess with serialisation by other users (such as the 
>> servlet container).
>>
>> Clever. The only missing piece is an override of the default serialisation 
>> to temporarily flip the switch.
>>
>> Still, in core it would be much more useful. Users that can configure this 
>> kind of tricks don't tend to make the mistake of referring a session anyway.
>>
>> Regards,
>>    Erik.
>>
>>
>> Op 18-11-10 18:31, Martijn Dashorst schreef:
>>> Sessions are meant to be serialized. That's the way they travel
>>> through a cluster, or how sessions are preserved during a server
>>> restart. I'd like to not break that by adding this functionality.
>>>
>>> Martijn
>>>
>>> On Thu, Nov 18, 2010 at 6:19 PM, Pedro Santos  wrote:
 Ok, I still don't know how interest is to have it in the core. You can do 
 it
 at an session extension, like:

 1- providing some API

 MySession extends Session{
    private ThreadLocal  sessionSerializationRestrictor = new
 ThreadLocal();
    public void inhibitSerializationOnThread(Object restrictor){
        sessionSerializationRestrictor.set(restrictor);   }

    public void removeSerializationRestriction(){
        sessionSerializationRestrictor.set(null);    }

    private void writeObject(java.io.ObjectOutputStream out) throws
 IOException {
        if (sessionSerializationRestrictor.get() != null) {
            throw some exception explaining that the restrictor do not allow
 this serialization;
        } else {
            out.defaultWriteObject();
        } }}

 2- providing some Page.IPageSerializer that calls
 inhibitSerializationOnThread and removeSerializationRestriction before and
 after the page serialization.

 On Thu, Nov 18, 2010 at 6:48 AM, Erik van 
 Oostenwrote:

> That won't work in general as some servlet containers (like tomcat)
> serialise the session to disk when its idle for too long.
>
> What I meant is that when the page is serialised, it _must_ not contain a
> reference to session.
>
>
>  but than some other developers can complain because they are deliberated
>> serialializing some session.
>>
> They won't complain when the exception text specifies why this is wrong.
> See Martijn's e-mail in this discussion thread for why it is wrong.
>
> Regards,
>     Erik.
>
>
> Op 17-11-10 21:05, Pedro Santos schreef:
>
>  I think it is to specific. You can override the Session on your app an
>> catch
>> this situation like:
>>
>>     private void writeObject(java.io.ObjectOutputStream out) throws
>> IOException {
>>         if (Application.get() != null&&
>> Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) 
>> {
>>             log.info("Session is being serialized in the development
>> environment, which is an not a desirable behavior.");
>>         }}
>>
>> but than some other developers can complain because they are deliberated
>> serialializing some session.
>>
>> On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten>> wrote:
>>> Shouldn't serialization fail when it references session/application?
>>> Perhaps only in development mode.
>>>
>>> Regards,
>>>    Erik.
>>>
>>> Op 16-11-10 19:03, Igor Vaynberg schreef:
>>>
>>>  added a log warning to property models when they reference session.
>>>
>>
>> --
>> Sent from my SMTP compliant software
>> Erik van Oosten
>> http://day-to-day-stuff.blogspot.com/
>>
>>
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicke

Re: StackOverflowError

2010-11-20 Thread Douglas Ferguson
Why not just throw and illegal argument exception when you try to create a 
model with a session?

D/

On Nov 19, 2010, at 3:16 AM, Erik van Oosten wrote:

> Pedro's solution allows you to turn serialisation on and off for a given 
> thread so you won't mess with serialisation by other users (such as the 
> servlet container).
> 
> Clever. The only missing piece is an override of the default serialisation to 
> temporarily flip the switch.
> 
> Still, in core it would be much more useful. Users that can configure this 
> kind of tricks don't tend to make the mistake of referring a session anyway.
> 
> Regards,
>Erik.
> 
> 
> Op 18-11-10 18:31, Martijn Dashorst schreef:
>> Sessions are meant to be serialized. That's the way they travel
>> through a cluster, or how sessions are preserved during a server
>> restart. I'd like to not break that by adding this functionality.
>> 
>> Martijn
>> 
>> On Thu, Nov 18, 2010 at 6:19 PM, Pedro Santos  wrote:
>>> Ok, I still don't know how interest is to have it in the core. You can do it
>>> at an session extension, like:
>>> 
>>> 1- providing some API
>>> 
>>> MySession extends Session{
>>>private ThreadLocal  sessionSerializationRestrictor = new
>>> ThreadLocal();
>>>public void inhibitSerializationOnThread(Object restrictor){
>>>sessionSerializationRestrictor.set(restrictor);   }
>>> 
>>>public void removeSerializationRestriction(){
>>>sessionSerializationRestrictor.set(null);}
>>> 
>>>private void writeObject(java.io.ObjectOutputStream out) throws
>>> IOException {
>>>if (sessionSerializationRestrictor.get() != null) {
>>>throw some exception explaining that the restrictor do not allow
>>> this serialization;
>>>} else {
>>>out.defaultWriteObject();
>>>} }}
>>> 
>>> 2- providing some Page.IPageSerializer that calls
>>> inhibitSerializationOnThread and removeSerializationRestriction before and
>>> after the page serialization.
>>> 
>>> On Thu, Nov 18, 2010 at 6:48 AM, Erik van Oostenwrote:
>>> 
 That won't work in general as some servlet containers (like tomcat)
 serialise the session to disk when its idle for too long.
 
 What I meant is that when the page is serialised, it _must_ not contain a
 reference to session.
 
 
  but than some other developers can complain because they are deliberated
> serialializing some session.
> 
 They won't complain when the exception text specifies why this is wrong.
 See Martijn's e-mail in this discussion thread for why it is wrong.
 
 Regards,
 Erik.
 
 
 Op 17-11-10 21:05, Pedro Santos schreef:
 
  I think it is to specific. You can override the Session on your app an
> catch
> this situation like:
> 
> private void writeObject(java.io.ObjectOutputStream out) throws
> IOException {
> if (Application.get() != null&&
> Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
> log.info("Session is being serialized in the development
> environment, which is an not a desirable behavior.");
> }}
> 
> but than some other developers can complain because they are deliberated
> serialializing some session.
> 
> On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten> wrote:
>> Shouldn't serialization fail when it references session/application?
>> Perhaps only in development mode.
>> 
>> Regards,
>>Erik.
>> 
>> Op 16-11-10 19:03, Igor Vaynberg schreef:
>> 
>>  added a log warning to property models when they reference session.
>> 
> 
> -- 
> Sent from my SMTP compliant software
> Erik van Oosten
> http://day-to-day-stuff.blogspot.com/
> 
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


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



Re: StackOverflowError

2010-11-19 Thread Erik van Oosten
Pedro's solution allows you to turn serialisation on and off for a given thread 
so you won't mess with serialisation by other users (such as the servlet container).


Clever. The only missing piece is an override of the default serialisation to 
temporarily flip the switch.


Still, in core it would be much more useful. Users that can configure this kind 
of tricks don't tend to make the mistake of referring a session anyway.


Regards,
Erik.


Op 18-11-10 18:31, Martijn Dashorst schreef:

Sessions are meant to be serialized. That's the way they travel
through a cluster, or how sessions are preserved during a server
restart. I'd like to not break that by adding this functionality.

Martijn

On Thu, Nov 18, 2010 at 6:19 PM, Pedro Santos  wrote:

Ok, I still don't know how interest is to have it in the core. You can do it
at an session extension, like:

1- providing some API

MySession extends Session{
private ThreadLocal  sessionSerializationRestrictor = new
ThreadLocal();
public void inhibitSerializationOnThread(Object restrictor){
sessionSerializationRestrictor.set(restrictor);   }

public void removeSerializationRestriction(){
sessionSerializationRestrictor.set(null);}

private void writeObject(java.io.ObjectOutputStream out) throws
IOException {
if (sessionSerializationRestrictor.get() != null) {
throw some exception explaining that the restrictor do not allow
this serialization;
} else {
out.defaultWriteObject();
} }}

2- providing some Page.IPageSerializer that calls
inhibitSerializationOnThread and removeSerializationRestriction before and
after the page serialization.

On Thu, Nov 18, 2010 at 6:48 AM, Erik van Oostenwrote:


That won't work in general as some servlet containers (like tomcat)
serialise the session to disk when its idle for too long.

What I meant is that when the page is serialised, it _must_ not contain a
reference to session.


  but than some other developers can complain because they are deliberated

serialializing some session.


They won't complain when the exception text specifies why this is wrong.
See Martijn's e-mail in this discussion thread for why it is wrong.

Regards,
 Erik.


Op 17-11-10 21:05, Pedro Santos schreef:

  I think it is to specific. You can override the Session on your app an

catch
this situation like:

 private void writeObject(java.io.ObjectOutputStream out) throws
IOException {
 if (Application.get() != null&&
Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
 log.info("Session is being serialized in the development
environment, which is an not a desirable behavior.");
 }}

but than some other developers can complain because they are deliberated
serialializing some session.

On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten
wrote:
Shouldn't serialization fail when it references session/application?
Perhaps only in development mode.

Regards,
Erik.

Op 16-11-10 19:03, Igor Vaynberg schreef:

  added a log warning to property models when they reference session.



--
Sent from my SMTP compliant software
Erik van Oosten
http://day-to-day-stuff.blogspot.com/



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



Re: StackOverflowError

2010-11-18 Thread Martijn Dashorst
Sessions are meant to be serialized. That's the way they travel
through a cluster, or how sessions are preserved during a server
restart. I'd like to not break that by adding this functionality.

Martijn

On Thu, Nov 18, 2010 at 6:19 PM, Pedro Santos  wrote:
> Ok, I still don't know how interest is to have it in the core. You can do it
> at an session extension, like:
>
> 1- providing some API
>
> MySession extends Session{
>    private ThreadLocal sessionSerializationRestrictor = new
> ThreadLocal();
>    public void inhibitSerializationOnThread(Object restrictor){
>        sessionSerializationRestrictor.set(restrictor);   }
>
>    public void removeSerializationRestriction(){
>        sessionSerializationRestrictor.set(null);    }
>
>    private void writeObject(java.io.ObjectOutputStream out) throws
> IOException {
>        if (sessionSerializationRestrictor.get() != null) {
>            throw some exception explaining that the restrictor do not allow
> this serialization;
>        } else {
>            out.defaultWriteObject();
>        } }}
>
> 2- providing some Page.IPageSerializer that calls
> inhibitSerializationOnThread and removeSerializationRestriction before and
> after the page serialization.
>
> On Thu, Nov 18, 2010 at 6:48 AM, Erik van Oosten wrote:
>
>> That won't work in general as some servlet containers (like tomcat)
>> serialise the session to disk when its idle for too long.
>>
>> What I meant is that when the page is serialised, it _must_ not contain a
>> reference to session.
>>
>>
>>  but than some other developers can complain because they are deliberated
>>> serialializing some session.
>>>
>> They won't complain when the exception text specifies why this is wrong.
>> See Martijn's e-mail in this discussion thread for why it is wrong.
>>
>> Regards,
>>     Erik.
>>
>>
>> Op 17-11-10 21:05, Pedro Santos schreef:
>>
>>  I think it is to specific. You can override the Session on your app an
>>> catch
>>> this situation like:
>>>
>>>     private void writeObject(java.io.ObjectOutputStream out) throws
>>> IOException {
>>>         if (Application.get() != null&&
>>> Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
>>>             log.info("Session is being serialized in the development
>>> environment, which is an not a desirable behavior.");
>>>         }}
>>>
>>> but than some other developers can complain because they are deliberated
>>> serialializing some session.
>>>
>>> On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten>> >wrote:
>>>
 Shouldn't serialization fail when it references session/application?
 Perhaps only in development mode.

 Regards,
    Erik.

 Op 16-11-10 19:03, Igor Vaynberg schreef:

  added a log warning to property models when they reference session.

>>>
>> --
>> Sent from my SMTP compliant software
>> Erik van Oosten
>> http://day-to-day-stuff.blogspot.com/
>>
>>
>>
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
>
> --
> Pedro Henrique Oliveira dos Santos
>



-- 
Become a Wicket expert, learn from the best: http://wicketinaction.com

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



Re: StackOverflowError

2010-11-18 Thread Pedro Santos
Ok, I still don't know how interest is to have it in the core. You can do it
at an session extension, like:

1- providing some API

MySession extends Session{
private ThreadLocal sessionSerializationRestrictor = new
ThreadLocal();
public void inhibitSerializationOnThread(Object restrictor){
sessionSerializationRestrictor.set(restrictor);   }

public void removeSerializationRestriction(){
sessionSerializationRestrictor.set(null);}

private void writeObject(java.io.ObjectOutputStream out) throws
IOException {
if (sessionSerializationRestrictor.get() != null) {
throw some exception explaining that the restrictor do not allow
this serialization;
} else {
out.defaultWriteObject();
} }}

2- providing some Page.IPageSerializer that calls
inhibitSerializationOnThread and removeSerializationRestriction before and
after the page serialization.

On Thu, Nov 18, 2010 at 6:48 AM, Erik van Oosten wrote:

> That won't work in general as some servlet containers (like tomcat)
> serialise the session to disk when its idle for too long.
>
> What I meant is that when the page is serialised, it _must_ not contain a
> reference to session.
>
>
>  but than some other developers can complain because they are deliberated
>> serialializing some session.
>>
> They won't complain when the exception text specifies why this is wrong.
> See Martijn's e-mail in this discussion thread for why it is wrong.
>
> Regards,
> Erik.
>
>
> Op 17-11-10 21:05, Pedro Santos schreef:
>
>  I think it is to specific. You can override the Session on your app an
>> catch
>> this situation like:
>>
>> private void writeObject(java.io.ObjectOutputStream out) throws
>> IOException {
>> if (Application.get() != null&&
>> Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
>> log.info("Session is being serialized in the development
>> environment, which is an not a desirable behavior.");
>> }}
>>
>> but than some other developers can complain because they are deliberated
>> serialializing some session.
>>
>> On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten> >wrote:
>>
>>> Shouldn't serialization fail when it references session/application?
>>> Perhaps only in development mode.
>>>
>>> Regards,
>>>Erik.
>>>
>>> Op 16-11-10 19:03, Igor Vaynberg schreef:
>>>
>>>  added a log warning to property models when they reference session.
>>>
>>
> --
> Sent from my SMTP compliant software
> Erik van Oosten
> http://day-to-day-stuff.blogspot.com/
>
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


-- 
Pedro Henrique Oliveira dos Santos


Re: StackOverflowError

2010-11-18 Thread Erik van Oosten
That won't work in general as some servlet containers (like tomcat) serialise 
the session to disk when its idle for too long.


What I meant is that when the page is serialised, it _must_ not contain a 
reference to session.



but than some other developers can complain because they are deliberated
serialializing some session.
They won't complain when the exception text specifies why this is wrong. See 
Martijn's e-mail in this discussion thread for why it is wrong.


Regards,
 Erik.


Op 17-11-10 21:05, Pedro Santos schreef:

I think it is to specific. You can override the Session on your app an catch
this situation like:

 private void writeObject(java.io.ObjectOutputStream out) throws
IOException {
 if (Application.get() != null&&
Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
 log.info("Session is being serialized in the development
environment, which is an not a desirable behavior.");
 }}

but than some other developers can complain because they are deliberated
serialializing some session.

On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oostenwrote:

Shouldn't serialization fail when it references session/application?
Perhaps only in development mode.

Regards,
Erik.

Op 16-11-10 19:03, Igor Vaynberg schreef:

  added a log warning to property models when they reference session.


--
Sent from my SMTP compliant software
Erik van Oosten
http://day-to-day-stuff.blogspot.com/



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



Re: StackOverflowError

2010-11-17 Thread Pedro Santos
I think it is to specific. You can override the Session on your app an catch
this situation like:

private void writeObject(java.io.ObjectOutputStream out) throws
IOException {
if (Application.get() != null &&
Application.get().getConfigurationType().equals(Application.DEPLOYMENT)) {
log.info("Session is being serialized in the development
environment, which is an not a desirable behavior.");
}}

but than some other developers can complain because they are deliberated
serialializing some session.

On Wed, Nov 17, 2010 at 4:49 PM, Erik van Oosten wrote:

> Shouldn't serialization fail when it references session/application?
> Perhaps only in development mode.
>
> Regards,
>Erik.
>
> Op 16-11-10 19:03, Igor Vaynberg schreef:
>
>  added a log warning to property models when they reference session.
>>
>> -igor
>>
>> On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson
>>   wrote:
>>
>>> We found it.. Finally!!!
>>>
>>> There was a property model that was using the session as the model
>>> object.
>>>
>>> It would be cool if PropertyModel, etc would check for this and blow up
>>> on construction.
>>> i.e. not allow Page, Session, Application as the model object...
>>>
>>
>>
>
> --
> Erik van Oosten
> http://www.day-to-day-stuff.blogspot.com/
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


-- 
Pedro Henrique Oliveira dos Santos


Re: StackOverflowError

2010-11-17 Thread Erik van Oosten

Shouldn't serialization fail when it references session/application?
Perhaps only in development mode.

Regards,
Erik.

Op 16-11-10 19:03, Igor Vaynberg schreef:

added a log warning to property models when they reference session.

-igor

On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson
  wrote:

We found it.. Finally!!!

There was a property model that was using the session as the model object.

It would be cool if PropertyModel, etc would check for this and blow up on 
construction.
i.e. not allow Page, Session, Application as the model object...





--
Erik van Oosten
http://www.day-to-day-stuff.blogspot.com/


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



Re: StackOverflowError

2010-11-17 Thread Martin Funk
2010/11/16 Douglas Ferguson 

> so I guess it knows not to serialize itself again if it sees it in a model?
>
close

'this' is the page it gets serialized anyway.

and "session.property" gets transformed into a
'getSession().getProperty()" whenever PropertyModel.getObject() is called.

mf

>
> On Nov 16, 2010, at 11:55 AM, Igor Vaynberg wrote:
>
> > PropertyModel(this, "session.property"), this being the Page instance
> > you are in.
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>>>> at
>>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>>>> at
>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124)
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
>>> 
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.prepareForSerialization(DiskPageStore.java:1190)
>>> 
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389)
>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Become a Wicket expert, learn from the best:
>>> http://wicketinaction.com <http://wicketinaction.com?by-user=t>
>>>>>>> 
>>>>>>> -
>>>>>>> To unsubscribe, e-mail: [hidden 
>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=2>
>>>>>>> For additional commands, e-mail: [hidden 
>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=3>
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> -
>>>> To unsubscribe, e-mail: [hidden 
>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=4>
>>>> For additional commands, e-mail: [hidden 
>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=5>
>>>> 
>>>> 
>>> 
>>> -
>>> To unsubscribe, e-mail: [hidden 
>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=6>
>>> For additional commands, e-mail: [hidden 
>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=7>
>>> 
>>> 
>>> 
>>> --
>>>  View message @
>>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045359.html
>>> To start a new topic under Apache Wicket, email
>>> ml-node+1842946-398011874-65...@n4.nabble.com
>>> To unsubscribe from Apache Wicket, click 
>>> here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>.
>>> 
>>> 
>>> 
>> 
>> 
>> --
>> Sincerely,
>> JC (http://www.linkedin.com/in/jcgarciam)
>> Work smarter, not harder!.
>> 
>> --
>> View this message in context: 
>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045367.html
>> Sent from the Users forum mailing list archive at Nabble.com.
>> 
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Become a Wicket expert, learn from the best: http://wicketinaction.com
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


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



Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
so I guess it knows not to serialize itself again if it sees it in a model?

On Nov 16, 2010, at 11:55 AM, Igor Vaynberg wrote:

> PropertyModel(this, "session.property"), this being the Page instance
> you are in.


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



Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
eObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>>> Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>>>>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>>>> at
>>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
>>> 
>>>>>>>>> at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>>>>>>> at
>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124)
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
>>> 
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.prepareForSerialization(DiskPageStore.java:1190)
>>> 
>>>>>>>>> at
>>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389)
>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Become a Wicket expert, learn from the best:
>>> http://wicketinaction.com <http://wicketinaction.com?by-user=t>
>>>>>>> 
>>>>>>> -
>>>>>>> To unsubscribe, e-mail: [hidden 
>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=2>
>>>>>>> For additional commands, e-mail: [hidden 
>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=3>
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> -
>>>> To unsubscribe, e-mail: [hidden 
>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=4>
>>>> For additional commands, e-mail: [hidden 
>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=5>
>>>> 
>>>> 
>>> 
>>> -
>>> To unsubscribe, e-mail: [hidden 
>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=6>
>>> For additional commands, e-mail: [hidden 
>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=7>
>>> 
>>> 
>>> 
>>> --
>>>  View message @
>>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045359.html
>>> To start a new topic under Apache Wicket, email
>>> ml-node+1842946-398011874-65...@n4.nabble.com
>>> To unsubscribe from Apache Wicket, click 
>>> here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>.
>>> 
>>> 
>>> 
>> 
>> 
>> --
>> Sincerely,
>> JC (http://www.linkedin.com/in/jcgarciam)
>> Work smarter, not harder!.
>> 
>> --
>> View this message in context: 
>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045367.html
>> Sent from the Users forum mailing list archive at Nabble.com.
>> 
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Become a Wicket expert, learn from the best: http://wicketinaction.com
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


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



Re: StackOverflowError

2010-11-16 Thread Martijn Dashorst
urce)
>>
>> >>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>> Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>
>> >>>>>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
>> Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>> >>>>>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>> >>>>>>     at
>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
>>
>> >>>>>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>> >>>>>>     at
>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124)
>> >>>>>>     at
>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
>>
>> >>>>>>     at
>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.prepareForSerialization(DiskPageStore.java:1190)
>>
>> >>>>>>     at
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389)
>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Become a Wicket expert, learn from the best:
>> http://wicketinaction.com <http://wicketinaction.com?by-user=t>
>> >>>>
>> >>>> -
>> >>>> To unsubscribe, e-mail: [hidden 
>> >>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=2>
>> >>>> For additional commands, e-mail: [hidden 
>> >>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=3>
>> >>>>
>> >>>
>> >>
>> >
>> >
>> > -
>> > To unsubscribe, e-mail: [hidden 
>> > email]<http://user/SendEmail.jtp?type=node&node=3045359&i=4>
>> > For additional commands, e-mail: [hidden 
>> > email]<http://user/SendEmail.jtp?type=node&node=3045359&i=5>
>> >
>> >
>>
>> -
>> To unsubscribe, e-mail: [hidden 
>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=6>
>> For additional commands, e-mail: [hidden 
>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=7>
>>
>>
>>
>> --
>>  View message @
>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045359.html
>> To start a new topic under Apache Wicket, email
>> ml-node+1842946-398011874-65...@n4.nabble.com
>> To unsubscribe from Apache Wicket, click 
>> here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>.
>>
>>
>>
>
>
> --
> Sincerely,
> JC (http://www.linkedin.com/in/jcgarciam)
> Work smarter, not harder!.
>
> --
> View this message in context: 
> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045367.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



-- 
Become a Wicket expert, learn from the best: http://wicketinaction.com

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



Re: StackOverflowError

2010-11-16 Thread Igor Vaynberg
added a log warning to property models when they reference session.

-igor

On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson
 wrote:
> We found it.. Finally!!!
>
> There was a property model that was using the session as the model object.
>
> It would be cool if PropertyModel, etc would check for this and blow up on 
> construction.
> i.e. not allow Page, Session, Application as the model object...
>
> D/
> On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote:
>
>> Just tested on 1.4.13 and it still happens
>>
>> On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote:
>>
>>> 1.4.12, but the problem has been around since a few versions back.
>>>
>>> D/
>>>
>>> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:
>>>
 Are you using 1.4.13?

 Martijn

 On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
  wrote:
> Some time ago I posted to the list regarding a stack overflow error that 
> I was receiving and the advice was to make sure that I didn't have a page 
> storing a reference to another page.
> We did track this down and have just had to ignore it in the production 
> logs.  Now we've made it a priority to track this down.
>
> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
> feature. We are able to recreate the bug by pasting a url into a new 
> browser window and thus generating a new pagemap. On a certain page the 
> memory consumption doubles as you generate new pagemaps (see the chart 
> below). The profile is indicating that the memory is being taken up by a 
> hashmap, but that's as far as we've been able to trace it so far.
>
>> PageMap #    Size    Growth
>> 13    389523448    1.93
>> 12    202059096    1.93
>> 11    104804096    1.93
>> 10    54352280    1.93
>> 9    28182760    1.93
>> 8    14594976    1.93
>> 7    7549336    1.94
>> 6    3900704    1.94
>> 5    2013480    2
>> 4    1006960    2
>> 3    503696    2
>> 2    252072    1.86
>> 1    135704
>
>
> Any thoughts or tips on trying to get to the bottom of this one?
>
> Here's the stack trace
>
>>     at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>     at java.util.LinkedList.writeObject(Unknown Source)
>>     at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>>     at org.apache.wicket.Component.writeObject(Component.java:4660)
>>     at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinar

Re: StackOverflowError

2010-11-16 Thread jcgarciam
eObject(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>
> >>>>>> at org.apache.wicket.Component.writeObject(Component.java:4660)
> >>>>>> at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
> >>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> >>>>>> at java.lang.reflect.Method.invoke(Unknown Source)
> >>>>>> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
> >>>>>> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> >>>>>> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown
> Source)
> >>>>>> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> >>>>>> 

Re: StackOverflowError

2010-11-16 Thread Igor Vaynberg
it is perfectly valid to use page as the model object. in fact if you
wanted to pull something out of session you can simply say new
PropertyModel(this, "session.property"), this being the Page instance
you are in.

-igor

On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson
 wrote:
> We found it.. Finally!!!
>
> There was a property model that was using the session as the model object.
>
> It would be cool if PropertyModel, etc would check for this and blow up on 
> construction.
> i.e. not allow Page, Session, Application as the model object...
>
> D/
> On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote:
>
>> Just tested on 1.4.13 and it still happens
>>
>> On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote:
>>
>>> 1.4.12, but the problem has been around since a few versions back.
>>>
>>> D/
>>>
>>> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:
>>>
 Are you using 1.4.13?

 Martijn

 On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
  wrote:
> Some time ago I posted to the list regarding a stack overflow error that 
> I was receiving and the advice was to make sure that I didn't have a page 
> storing a reference to another page.
> We did track this down and have just had to ignore it in the production 
> logs.  Now we've made it a priority to track this down.
>
> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
> feature. We are able to recreate the bug by pasting a url into a new 
> browser window and thus generating a new pagemap. On a certain page the 
> memory consumption doubles as you generate new pagemaps (see the chart 
> below). The profile is indicating that the memory is being taken up by a 
> hashmap, but that's as far as we've been able to trace it so far.
>
>> PageMap #    Size    Growth
>> 13    389523448    1.93
>> 12    202059096    1.93
>> 11    104804096    1.93
>> 10    54352280    1.93
>> 9    28182760    1.93
>> 8    14594976    1.93
>> 7    7549336    1.94
>> 6    3900704    1.94
>> 5    2013480    2
>> 4    1006960    2
>> 3    503696    2
>> 2    252072    1.86
>> 1    135704
>
>
> Any thoughts or tips on trying to get to the bottom of this one?
>
> Here's the stack trace
>
>>     at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>     at java.util.LinkedList.writeObject(Unknown Source)
>>     at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>>     at org.apache.wicket.Component.writeObject(Component.java:4660)
>>     at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>     at java.lang.reflect.Method.invoke(Unknown Source)
>>     at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>     at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>     at java.io.ObjectOutputStream.defaultWriteFi

Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
We found it.. Finally!!!

There was a property model that was using the session as the model object.

It would be cool if PropertyModel, etc would check for this and blow up on 
construction.
i.e. not allow Page, Session, Application as the model object...

D/
On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote:

> Just tested on 1.4.13 and it still happens
> 
> On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote:
> 
>> 1.4.12, but the problem has been around since a few versions back.
>> 
>> D/
>> 
>> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:
>> 
>>> Are you using 1.4.13?
>>> 
>>> Martijn
>>> 
>>> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
>>>  wrote:
 Some time ago I posted to the list regarding a stack overflow error that I 
 was receiving and the advice was to make sure that I didn't have a page 
 storing a reference to another page.
 We did track this down and have just had to ignore it in the production 
 logs.  Now we've made it a priority to track this down.
 
 Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
 feature. We are able to recreate the bug by pasting a url into a new 
 browser window and thus generating a new pagemap. On a certain page the 
 memory consumption doubles as you generate new pagemaps (see the chart 
 below). The profile is indicating that the memory is being taken up by a 
 hashmap, but that's as far as we've been able to trace it so far.
 
> PageMap #SizeGrowth
> 133895234481.93
> 122020590961.93
> 111048040961.93
> 10543522801.93
> 9281827601.93
> 8145949761.93
> 775493361.94
> 639007041.94
> 520134802
> 410069602
> 35036962
> 22520721.86
> 1135704
 
 
 Any thoughts or tips on trying to get to the bottom of this one?
 
 Here's the stack trace
 
> at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.writeObject(Unknown Source)
> at java.util.LinkedList.writeObject(Unknown Source)
> at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
> at org.apache.wicket.Component.writeObject(Component.java:4660)
> at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source)
> at java.io.ObjectOutputStream.writeArray(Unknown Source)
> at java.io.ObjectOutputStream.writeObject0(Unknown Source

Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
Just tested on 1.4.13 and it still happens

On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote:

> 1.4.12, but the problem has been around since a few versions back.
> 
> D/
> 
> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:
> 
>> Are you using 1.4.13?
>> 
>> Martijn
>> 
>> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
>>  wrote:
>>> Some time ago I posted to the list regarding a stack overflow error that I 
>>> was receiving and the advice was to make sure that I didn't have a page 
>>> storing a reference to another page.
>>> We did track this down and have just had to ignore it in the production 
>>> logs.  Now we've made it a priority to track this down.
>>> 
>>> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
>>> feature. We are able to recreate the bug by pasting a url into a new 
>>> browser window and thus generating a new pagemap. On a certain page the 
>>> memory consumption doubles as you generate new pagemaps (see the chart 
>>> below). The profile is indicating that the memory is being taken up by a 
>>> hashmap, but that's as far as we've been able to trace it so far.
>>> 
 PageMap #SizeGrowth
 133895234481.93
 122020590961.93
 111048040961.93
 10543522801.93
 9281827601.93
 8145949761.93
 775493361.94
 639007041.94
 520134802
 410069602
 35036962
 22520721.86
 1135704
>>> 
>>> 
>>> Any thoughts or tips on trying to get to the bottom of this one?
>>> 
>>> Here's the stack trace
>>> 
  at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeObject(Unknown Source)
  at java.util.LinkedList.writeObject(Unknown Source)
  at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
  at org.apache.wicket.Component.writeObject(Component.java:4660)
  at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeArray(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeArray(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
  at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
  at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
  at java.io.ObjectOutputStream.writeObject0(Unknown Source)
  at java.io.ObjectOutputStream.writeArray(Unknown Source)

Re: StackOverflowError

2010-11-16 Thread Douglas Ferguson
1.4.12, but the problem has been around since a few versions back.

D/

On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote:

> Are you using 1.4.13?
> 
> Martijn
> 
> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
>  wrote:
>> Some time ago I posted to the list regarding a stack overflow error that I 
>> was receiving and the advice was to make sure that I didn't have a page 
>> storing a reference to another page.
>> We did track this down and have just had to ignore it in the production 
>> logs.  Now we've made it a priority to track this down.
>> 
>> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
>> feature. We are able to recreate the bug by pasting a url into a new browser 
>> window and thus generating a new pagemap. On a certain page the memory 
>> consumption doubles as you generate new pagemaps (see the chart below). The 
>> profile is indicating that the memory is being taken up by a hashmap, but 
>> that's as far as we've been able to trace it so far.
>> 
>>> PageMap #SizeGrowth
>>> 133895234481.93
>>> 122020590961.93
>>> 111048040961.93
>>> 10543522801.93
>>> 9281827601.93
>>> 8145949761.93
>>> 775493361.94
>>> 639007041.94
>>> 520134802
>>> 410069602
>>> 35036962
>>> 22520721.86
>>> 1135704
>> 
>> 
>> Any thoughts or tips on trying to get to the bottom of this one?
>> 
>> Here's the stack trace
>> 
>>>   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>   at java.lang.reflect.Method.invoke(Unknown Source)
>>>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>>   at java.util.LinkedList.writeObject(Unknown Source)
>>>   at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>   at java.lang.reflect.Method.invoke(Unknown Source)
>>>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>>>   at org.apache.wicket.Component.writeObject(Component.java:4660)
>>>   at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>   at java.lang.reflect.Method.invoke(Unknown Source)
>>>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>>   at 

Re: StackOverflowError

2010-11-15 Thread Martijn Dashorst
Are you using 1.4.13?

Martijn

On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson
 wrote:
> Some time ago I posted to the list regarding a stack overflow error that I 
> was receiving and the advice was to make sure that I didn't have a page 
> storing a reference to another page.
> We did track this down and have just had to ignore it in the production logs. 
>  Now we've made it a priority to track this down.
>
> Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
> feature. We are able to recreate the bug by pasting a url into a new browser 
> window and thus generating a new pagemap. On a certain page the memory 
> consumption doubles as you generate new pagemaps (see the chart below). The 
> profile is indicating that the memory is being taken up by a hashmap, but 
> that's as far as we've been able to trace it so far.
>
>> PageMap #    Size    Growth
>> 13    389523448    1.93
>> 12    202059096    1.93
>> 11    104804096    1.93
>> 10    54352280    1.93
>> 9    28182760    1.93
>> 8    14594976    1.93
>> 7    7549336    1.94
>> 6    3900704    1.94
>> 5    2013480    2
>> 4    1006960    2
>> 3    503696    2
>> 2    252072    1.86
>> 1    135704
>
>
> Any thoughts or tips on trying to get to the bottom of this one?
>
> Here's the stack trace
>
>>       at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>       at java.lang.reflect.Method.invoke(Unknown Source)
>>       at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject(Unknown Source)
>>       at java.util.LinkedList.writeObject(Unknown Source)
>>       at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>       at java.lang.reflect.Method.invoke(Unknown Source)
>>       at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>>       at org.apache.wicket.Component.writeObject(Component.java:4660)
>>       at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>       at java.lang.reflect.Method.invoke(Unknown Source)
>>       at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.writeArray(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>>       at java.io.Object

StackOverflowError

2010-11-15 Thread Douglas Ferguson
Some time ago I posted to the list regarding a stack overflow error that I was 
receiving and the advice was to make sure that I didn't have a page storing a 
reference to another page.
We did track this down and have just had to ignore it in the production logs.  
Now we've made it a priority to track this down.

Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
feature. We are able to recreate the bug by pasting a url into a new browser 
window and thus generating a new pagemap. On a certain page the memory 
consumption doubles as you generate new pagemaps (see the chart below). The 
profile is indicating that the memory is being taken up by a hashmap, but 
that's as far as we've been able to trace it so far.

> PageMap #SizeGrowth
> 133895234481.93
> 122020590961.93
> 111048040961.93
> 10543522801.93
> 9281827601.93
> 8145949761.93
> 775493361.94
> 639007041.94
> 520134802
> 410069602
> 35036962
> 22520721.86
> 1135704


Any thoughts or tips on trying to get to the bottom of this one?

Here's the stack trace

>   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>   at java.lang.reflect.Method.invoke(Unknown Source)
>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject(Unknown Source)
>   at java.util.LinkedList.writeObject(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>   at java.lang.reflect.Method.invoke(Unknown Source)
>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>   at org.apache.wicket.Component.writeObject(Component.java:4660)
>   at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>   at java.lang.reflect.Method.invoke(Unknown Source)
>   at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>   at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.writeArray(Unknown Source)
>   at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>   at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>   a

Re: StackOverFlowError

2010-09-23 Thread Michael O'Cleirigh

 Hello,

Pages are serialized at the end of the request cycle (this includes at 
the end of ajax requests)


Look at AbstractPageStore.serializePage(...)

Specificically the call to 
Objects.objectToByteArray(page.getPageMapEntry()) which turns the page 
into a bytearray.


http://grepcode.com/file/repo1.maven.org/maven2/org.apache.wicket/wicket/1.4.10/org/apache/wicket/protocol/http/pagestore/AbstractPageStore.java#AbstractPageStore.serializePage%28org.apache.wicket.Page%29

Regards,

Mike

When exactly does a page get serialized/serialized?

On Thu, Sep 23, 2010 at 12:54 PM, Igor Vaynbergwrote:


in dev serialization should happen just like in production.

-igor

On Thu, Sep 23, 2010 at 10:34 AM, Douglas Ferguson
  wrote:

Hey guys,

We overwrote "IObjectStreamFactory" with a copy that has more logging and

we

found the object that is causing the problems in our production logs. Now

we

need to recreate it in a more controlled environment.

How could we  force serialization of this object in a dev environmental?

D/

On Wed, Sep 22, 2010 at 6:23 PM, Andreas Petersson
  i had a very similar problem occuring in production when where was a
cluster failover. i could never reproduce it. did something strange

happen

to you like, the filesystem was partially wiped during writing?


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



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





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



Re: StackOverFlowError

2010-09-23 Thread Igor Vaynberg
at the end of request

-igor

On Thu, Sep 23, 2010 at 11:55 AM, Douglas Ferguson
 wrote:
> When exactly does a page get serialized/serialized?
>
> On Thu, Sep 23, 2010 at 12:54 PM, Igor Vaynberg 
> wrote:
>
>> in dev serialization should happen just like in production.
>>
>> -igor
>>
>> On Thu, Sep 23, 2010 at 10:34 AM, Douglas Ferguson
>>  wrote:
>> > Hey guys,
>> >
>> > We overwrote "IObjectStreamFactory" with a copy that has more logging and
>> we
>> > found the object that is causing the problems in our production logs. Now
>> we
>> > need to recreate it in a more controlled environment.
>> >
>> > How could we  force serialization of this object in a dev environmental?
>> >
>> > D/
>> >
>> > On Wed, Sep 22, 2010 at 6:23 PM, Andreas Petersson > >wrote:
>> >
>> >>  i had a very similar problem occuring in production when where was a
>> >> cluster failover. i could never reproduce it. did something strange
>> happen
>> >> to you like, the filesystem was partially wiped during writing?
>> >>
>> >>
>> >> -
>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >>
>> >>
>> >
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

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



Re: StackOverFlowError

2010-09-23 Thread Douglas Ferguson
When exactly does a page get serialized/serialized?

On Thu, Sep 23, 2010 at 12:54 PM, Igor Vaynberg wrote:

> in dev serialization should happen just like in production.
>
> -igor
>
> On Thu, Sep 23, 2010 at 10:34 AM, Douglas Ferguson
>  wrote:
> > Hey guys,
> >
> > We overwrote "IObjectStreamFactory" with a copy that has more logging and
> we
> > found the object that is causing the problems in our production logs. Now
> we
> > need to recreate it in a more controlled environment.
> >
> > How could we  force serialization of this object in a dev environmental?
> >
> > D/
> >
> > On Wed, Sep 22, 2010 at 6:23 PM, Andreas Petersson  >wrote:
> >
> >>  i had a very similar problem occuring in production when where was a
> >> cluster failover. i could never reproduce it. did something strange
> happen
> >> to you like, the filesystem was partially wiped during writing?
> >>
> >>
> >> -
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
> >
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: StackOverFlowError

2010-09-23 Thread Igor Vaynberg
in dev serialization should happen just like in production.

-igor

On Thu, Sep 23, 2010 at 10:34 AM, Douglas Ferguson
 wrote:
> Hey guys,
>
> We overwrote "IObjectStreamFactory" with a copy that has more logging and we
> found the object that is causing the problems in our production logs. Now we
> need to recreate it in a more controlled environment.
>
> How could we  force serialization of this object in a dev environmental?
>
> D/
>
> On Wed, Sep 22, 2010 at 6:23 PM, Andreas Petersson 
> wrote:
>
>>  i had a very similar problem occuring in production when where was a
>> cluster failover. i could never reproduce it. did something strange happen
>> to you like, the filesystem was partially wiped during writing?
>>
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

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



Re: StackOverFlowError

2010-09-23 Thread Douglas Ferguson
Hey guys,

We overwrote "IObjectStreamFactory" with a copy that has more logging and we
found the object that is causing the problems in our production logs. Now we
need to recreate it in a more controlled environment.

How could we  force serialization of this object in a dev environmental?

D/

On Wed, Sep 22, 2010 at 6:23 PM, Andreas Petersson wrote:

>  i had a very similar problem occuring in production when where was a
> cluster failover. i could never reproduce it. did something strange happen
> to you like, the filesystem was partially wiped during writing?
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: StackOverFlowError

2010-09-22 Thread Andreas Petersson
 i had a very similar problem occuring in production when where was a 
cluster failover. i could never reproduce it. did something strange 
happen to you like, the filesystem was partially wiped during writing?


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



Re: StackOverFlowError

2010-07-02 Thread Igor Vaynberg
setresponsepage(new mypage(thispage));

or indirectly via an anonymous model class or something that holds a
reference to the page.

-igor

On Fri, Jul 2, 2010 at 9:57 AM, Douglas Ferguson
 wrote:
> Hmm... I don't really follow.
>
>
>
> On Fri, Jul 2, 2010 at 11:31 AM, robert.mcguinness <
> robert.mcguinness@gmail.com> wrote:
>
>>
>> this happened to me the other day.  turned out to be a coding error.  i
>> wrapped a compoundpropertymodel in a propertylistview (which already wraps
>> a
>> model into a compoundpropertymodel).  once the code was fix the problem
>> went
>> away.
>>
>> my data set was also large.  about 1000 rows in a table being displayed on
>> screen.
>> --
>> View this message in context:
>> http://apache-wicket.1842946.n4.nabble.com/StackOverFlowError-tp2276618p2276655.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

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



Re: StackOverFlowError

2010-07-02 Thread Douglas Ferguson
Hmm... I don't really follow.



On Fri, Jul 2, 2010 at 11:31 AM, robert.mcguinness <
robert.mcguinness@gmail.com> wrote:

>
> this happened to me the other day.  turned out to be a coding error.  i
> wrapped a compoundpropertymodel in a propertylistview (which already wraps
> a
> model into a compoundpropertymodel).  once the code was fix the problem
> went
> away.
>
> my data set was also large.  about 1000 rows in a table being displayed on
> screen.
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/StackOverFlowError-tp2276618p2276655.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: StackOverFlowError

2010-07-02 Thread robert.mcguinness

this happened to me the other day.  turned out to be a coding error.  i
wrapped a compoundpropertymodel in a propertylistview (which already wraps a
model into a compoundpropertymodel).  once the code was fix the problem went
away.  

my data set was also large.  about 1000 rows in a table being displayed on
screen.  
-- 
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/StackOverFlowError-tp2276618p2276655.html
Sent from the Wicket - User mailing list archive at Nabble.com.

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



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-19 Thread Nigel Parker
OK, WICKET-2789 added.

Thanks again

Nigel

---

we can modify serializable checker to check if anything is holding a
reference to session or application and catch the error right away. please
add a jira issue for this.

-igor


Re: StackOverflowError under serialization leaves pagemap locked

2010-03-19 Thread Igor Vaynberg
we can modify serializable checker to check if anything is holding a
reference to session or application and catch the error right away.
please add a jira issue for this.

-igor

On Thu, Mar 18, 2010 at 11:17 PM, Nigel Parker  wrote:
> Thanks for all your help, Johan and Igor. Problem solved we think. One
> of the pages was holding a reference to the session. With multiple
> Ajax requests on the same page the session size was doubling each
> time, eventually giving stack overflow.
>
> Nigel
>
>
> Or:
>
> http://wicketstuff.org/maven/repository/org/apache/wicket/wicket/1.4-SNAPSHOT/
>
> That should also have the latest fix
>
> - Original message -
>
> the fix is in 1.4.x branch and will be part of 1.4.8.
>
> in the meantime you can build a fresh snapshot yourself and drop that
> into your application
>
> http://svn.apache.org/repos/asf/wicket/branches/wicket-1.4.x
>
> -igor
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

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



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-19 Thread Nigel Parker
Thanks for all your help, Johan and Igor. Problem solved we think. One
of the pages was holding a reference to the session. With multiple
Ajax requests on the same page the session size was doubling each
time, eventually giving stack overflow.

Nigel


Or:

http://wicketstuff.org/maven/repository/org/apache/wicket/wicket/1.4-SNAPSHOT/

That should also have the latest fix

- Original message -

the fix is in 1.4.x branch and will be part of 1.4.8.

in the meantime you can build a fresh snapshot yourself and drop that
into your application

http://svn.apache.org/repos/asf/wicket/branches/wicket-1.4.x

-igor

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



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-18 Thread Johan Compagner
Or:

http://wicketstuff.org/maven/repository/org/apache/wicket/wicket/1.4-SNAPSHOT/

That should also have the latest fix

- Original message -
> the fix is in 1.4.x branch and will be part of 1.4.8.
>
> in the meantime you can build a fresh snapshot yourself and drop that
> into your application
>
> http://svn.apache.org/repos/asf/wicket/branches/wicket-1.4.x
>
> -igor
>
> On Thu, Mar 18, 2010 at 3:27 PM, Nigel Parker  wrote:
> >
> > Thank you Johan for your reply. Agree that original problem should be fixed.
> > This is a critical problem for us. We have found out during the last 24
> > hours that some of our pages are retaining a session reference. With Ajax
> > requests this gives a doubling of session size for every request, and we now
> > believe this to be the cause of the StackOverflowErrors. We will try this in
> > production tomorrow.
> >
> > We upgraded to to 1.4.7 but still see that the pagemap is locked when the
> > stack overflows. Do you know if the fix to WICKET-2075 is in 1.4.7?
> >
> > Thanks
> > Nigel
> >
> >
> > Johan Compagner wrote:
> > >
> > > i fixed 2075 so that it should always unlock the pages.
> > >
> > > Problem is that you still could get weird errors because that page is not
> > > in
> > > a valid state in the session.
> > > So if back buttons/page versions are used it could be that that doesnt
> > > work
> > >
> > > So what should be fixed is the original problem
> > >
> > >
> > >
> > > On Wed, Mar 17, 2010 at 21:03, Nigel Parker 
> > > wrote:
> > >
> > > > We are a Wicket shop and for one of our clients have been running a
> > > > Wicket application successfully for over 2 years. We are now at
> > > > version 1.4.0. The traffic on the system is increasing and we are now
> > > > seeing an increased frequency of pagemap locking which is beginning to
> > > > be a serious problem for the users. By subclassing WebRequestCycle we
> > > > have identified that a StackOverflowError under serialization in
> > > > RequestCycle.detach() leaves the pagemap locked for the next minute.
> > > > If our analysis is correct this is essentially the problem reported as
> > > > https://issues.apache.org/jira/browse/WICKET-2075. Unfortunately we
> > > > cannot reproduce the problem in our test environment and it occurs
> > > > only in about one in every thousand requests with no apparent
> > > > consistent pattern about what the user has been doing. Can anybody
> > > > suggest an immediate strategy for further investigations? In
> > > > particular:
> > > >
> > > > - is there a practical way to find out what is causing the
> > > > serialization problem. The stack trace is no help. We do in many cases
> > > > have large amounts of data in the session, but doubling the default
> > > > stack size leaves the problem frequency unchanged leading us to
> > > > suspect a logical error rather the sheer amount of data.
> > > >
> > > > - by overriding RequestCycle.detach() and catching the
> > > > StackOverflowError we can get control when the error occurs. Is there
> > > > any way we can persuade Wicket to release the pagemap lock? I have
> > > > looked at the code and this doesn't look straightforward.
> > > >
> > > > - can we get Wicket itself to suppress the StackOverflowError so that
> > > > detach() continues and releases the lock?
> > > >
> > > > Grateful for any suggestions.
> > > >
> > > > Nigel
> > > >
> > > > -
> > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > > > For additional commands, e-mail: users-h...@wicket.apache.org
> > > >
> > > >
> > >
> > >
> >
> > --
> > View this message in context:
> > http://old.nabble.com/StackOverflowError-under-serialization-leaves-pagemap-locked-tp27938028p27950858.html
> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-18 Thread Igor Vaynberg
the fix is in 1.4.x branch and will be part of 1.4.8.

in the meantime you can build a fresh snapshot yourself and drop that
into your application

http://svn.apache.org/repos/asf/wicket/branches/wicket-1.4.x

-igor

On Thu, Mar 18, 2010 at 3:27 PM, Nigel Parker  wrote:
>
> Thank you Johan for your reply. Agree that original problem should be fixed.
> This is a critical problem for us. We have found out during the last 24
> hours that some of our pages are retaining a session reference. With Ajax
> requests this gives a doubling of session size for every request, and we now
> believe this to be the cause of the StackOverflowErrors. We will try this in
> production tomorrow.
>
> We upgraded to to 1.4.7 but still see that the pagemap is locked when the
> stack overflows. Do you know if the fix to WICKET-2075 is in 1.4.7?
>
> Thanks
> Nigel
>
>
> Johan Compagner wrote:
>>
>> i fixed 2075 so that it should always unlock the pages.
>>
>> Problem is that you still could get weird errors because that page is not
>> in
>> a valid state in the session.
>> So if back buttons/page versions are used it could be that that doesnt
>> work
>>
>> So what should be fixed is the original problem
>>
>>
>>
>> On Wed, Mar 17, 2010 at 21:03, Nigel Parker 
>> wrote:
>>
>>> We are a Wicket shop and for one of our clients have been running a
>>> Wicket application successfully for over 2 years. We are now at
>>> version 1.4.0. The traffic on the system is increasing and we are now
>>> seeing an increased frequency of pagemap locking which is beginning to
>>> be a serious problem for the users. By subclassing WebRequestCycle we
>>> have identified that a StackOverflowError under serialization in
>>> RequestCycle.detach() leaves the pagemap locked for the next minute.
>>> If our analysis is correct this is essentially the problem reported as
>>> https://issues.apache.org/jira/browse/WICKET-2075. Unfortunately we
>>> cannot reproduce the problem in our test environment and it occurs
>>> only in about one in every thousand requests with no apparent
>>> consistent pattern about what the user has been doing. Can anybody
>>> suggest an immediate strategy for further investigations? In
>>> particular:
>>>
>>> - is there a practical way to find out what is causing the
>>> serialization problem. The stack trace is no help. We do in many cases
>>> have large amounts of data in the session, but doubling the default
>>> stack size leaves the problem frequency unchanged leading us to
>>> suspect a logical error rather the sheer amount of data.
>>>
>>> - by overriding RequestCycle.detach() and catching the
>>> StackOverflowError we can get control when the error occurs. Is there
>>> any way we can persuade Wicket to release the pagemap lock? I have
>>> looked at the code and this doesn't look straightforward.
>>>
>>> - can we get Wicket itself to suppress the StackOverflowError so that
>>> detach() continues and releases the lock?
>>>
>>> Grateful for any suggestions.
>>>
>>> Nigel
>>>
>>> -
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>
>>
>
> --
> View this message in context: 
> http://old.nabble.com/StackOverflowError-under-serialization-leaves-pagemap-locked-tp27938028p27950858.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

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



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-18 Thread Nigel Parker

Thank you Johan for your reply. Agree that original problem should be fixed.
This is a critical problem for us. We have found out during the last 24
hours that some of our pages are retaining a session reference. With Ajax
requests this gives a doubling of session size for every request, and we now
believe this to be the cause of the StackOverflowErrors. We will try this in
production tomorrow.

We upgraded to to 1.4.7 but still see that the pagemap is locked when the
stack overflows. Do you know if the fix to WICKET-2075 is in 1.4.7?

Thanks
Nigel


Johan Compagner wrote:
> 
> i fixed 2075 so that it should always unlock the pages.
> 
> Problem is that you still could get weird errors because that page is not
> in
> a valid state in the session.
> So if back buttons/page versions are used it could be that that doesnt
> work
> 
> So what should be fixed is the original problem
> 
> 
> 
> On Wed, Mar 17, 2010 at 21:03, Nigel Parker 
> wrote:
> 
>> We are a Wicket shop and for one of our clients have been running a
>> Wicket application successfully for over 2 years. We are now at
>> version 1.4.0. The traffic on the system is increasing and we are now
>> seeing an increased frequency of pagemap locking which is beginning to
>> be a serious problem for the users. By subclassing WebRequestCycle we
>> have identified that a StackOverflowError under serialization in
>> RequestCycle.detach() leaves the pagemap locked for the next minute.
>> If our analysis is correct this is essentially the problem reported as
>> https://issues.apache.org/jira/browse/WICKET-2075. Unfortunately we
>> cannot reproduce the problem in our test environment and it occurs
>> only in about one in every thousand requests with no apparent
>> consistent pattern about what the user has been doing. Can anybody
>> suggest an immediate strategy for further investigations? In
>> particular:
>>
>> - is there a practical way to find out what is causing the
>> serialization problem. The stack trace is no help. We do in many cases
>> have large amounts of data in the session, but doubling the default
>> stack size leaves the problem frequency unchanged leading us to
>> suspect a logical error rather the sheer amount of data.
>>
>> - by overriding RequestCycle.detach() and catching the
>> StackOverflowError we can get control when the error occurs. Is there
>> any way we can persuade Wicket to release the pagemap lock? I have
>> looked at the code and this doesn't look straightforward.
>>
>> - can we get Wicket itself to suppress the StackOverflowError so that
>> detach() continues and releases the lock?
>>
>> Grateful for any suggestions.
>>
>> Nigel
>>
>> -----
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
> 
> 

-- 
View this message in context: 
http://old.nabble.com/StackOverflowError-under-serialization-leaves-pagemap-locked-tp27938028p27950858.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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



Re: StackOverflowError under serialization leaves pagemap locked

2010-03-17 Thread Johan Compagner
i fixed 2075 so that it should always unlock the pages.

Problem is that you still could get weird errors because that page is not in
a valid state in the session.
So if back buttons/page versions are used it could be that that doesnt work

So what should be fixed is the original problem



On Wed, Mar 17, 2010 at 21:03, Nigel Parker  wrote:

> We are a Wicket shop and for one of our clients have been running a
> Wicket application successfully for over 2 years. We are now at
> version 1.4.0. The traffic on the system is increasing and we are now
> seeing an increased frequency of pagemap locking which is beginning to
> be a serious problem for the users. By subclassing WebRequestCycle we
> have identified that a StackOverflowError under serialization in
> RequestCycle.detach() leaves the pagemap locked for the next minute.
> If our analysis is correct this is essentially the problem reported as
> https://issues.apache.org/jira/browse/WICKET-2075. Unfortunately we
> cannot reproduce the problem in our test environment and it occurs
> only in about one in every thousand requests with no apparent
> consistent pattern about what the user has been doing. Can anybody
> suggest an immediate strategy for further investigations? In
> particular:
>
> - is there a practical way to find out what is causing the
> serialization problem. The stack trace is no help. We do in many cases
> have large amounts of data in the session, but doubling the default
> stack size leaves the problem frequency unchanged leading us to
> suspect a logical error rather the sheer amount of data.
>
> - by overriding RequestCycle.detach() and catching the
> StackOverflowError we can get control when the error occurs. Is there
> any way we can persuade Wicket to release the pagemap lock? I have
> looked at the code and this doesn't look straightforward.
>
> - can we get Wicket itself to suppress the StackOverflowError so that
> detach() continues and releases the lock?
>
> Grateful for any suggestions.
>
> Nigel
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


StackOverflowError under serialization leaves pagemap locked

2010-03-17 Thread Nigel Parker
We are a Wicket shop and for one of our clients have been running a
Wicket application successfully for over 2 years. We are now at
version 1.4.0. The traffic on the system is increasing and we are now
seeing an increased frequency of pagemap locking which is beginning to
be a serious problem for the users. By subclassing WebRequestCycle we
have identified that a StackOverflowError under serialization in
RequestCycle.detach() leaves the pagemap locked for the next minute.
If our analysis is correct this is essentially the problem reported as
https://issues.apache.org/jira/browse/WICKET-2075. Unfortunately we
cannot reproduce the problem in our test environment and it occurs
only in about one in every thousand requests with no apparent
consistent pattern about what the user has been doing. Can anybody
suggest an immediate strategy for further investigations? In
particular:

- is there a practical way to find out what is causing the
serialization problem. The stack trace is no help. We do in many cases
have large amounts of data in the session, but doubling the default
stack size leaves the problem frequency unchanged leading us to
suspect a logical error rather the sheer amount of data.

- by overriding RequestCycle.detach() and catching the
StackOverflowError we can get control when the error occurs. Is there
any way we can persuade Wicket to release the pagemap lock? I have
looked at the code and this doesn't look straightforward.

- can we get Wicket itself to suppress the StackOverflowError so that
detach() continues and releases the lock?

Grateful for any suggestions.

Nigel

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



Re: StackOverflowError on cluster failover.

2009-09-03 Thread Igor Vaynberg
it looks like it may be a problem deserializing a joda time object.
you will have to debug and see which class exactly fails.

-igor

On Thu, Sep 3, 2009 at 5:11 AM, HarriSoft Ltd wrote:
>
> Hi,
>
> Firstly, I'm using Tomcat 5.5 and Wicket 1.3.5
>
> I've recently been tasked with running our current application in a
> clustered environment.  Having got the cluster configured (sticky sessions
> and session replication) I figured the app should run without a problem
> and it does, mostly.
>
> I've found a problem whereby it does not appear that the DiskPageStore
> file is being clustered correctly (its also possible that I've missed
> something)..  Our app has a feature that lets the user navigate backwards
> from the current page, retrieving the previous pages from the
> DiskPageStore and providing links on the pages (Back to SearchResults,
> previous page, etc.) to allow for backwards navigation.  On a single
> server this works, but in a clustered environment if the session was
> created on server A, then if server A failed over to server B, Wicket
> throws a StackOverflowError (Top of the stack trace is below).  Has
> anybody seen this behaviour before?  I have seen some comments about
> clusters failing over and exceptions being thrown on a subsequent use of
> the back button; is this still the case as that is essentially what we are
> doing with pages in a flow.
>
> Any help appreciated.
>
> java.lang.StackOverflowError
>        java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:600)
>        
> java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:789)
>        java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1534)
>        java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>        
> org.joda.time.chrono.ISOChronology$Stub.readObject(ISOChronology.java:210)
>        sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
>        
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        java.lang.reflect.Method.invoke(Method.java:585)
>        java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>        java.util.ArrayList.readObject(ArrayList.java:591)
>        sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
>        
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        java.lang.reflect.Method.invoke(Method.java:585)
>        java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
>        java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
>        
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
>        java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>        java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
>        java.io.ObjectI

StackOverflowError on cluster failover.

2009-09-03 Thread HarriSoft Ltd

Hi,

Firstly, I'm using Tomcat 5.5 and Wicket 1.3.5

I've recently been tasked with running our current application in a
clustered environment.  Having got the cluster configured (sticky sessions
and session replication) I figured the app should run without a problem
and it does, mostly.

I've found a problem whereby it does not appear that the DiskPageStore
file is being clustered correctly (its also possible that I've missed
something)..  Our app has a feature that lets the user navigate backwards
from the current page, retrieving the previous pages from the
DiskPageStore and providing links on the pages (Back to SearchResults,
previous page, etc.) to allow for backwards navigation.  On a single
server this works, but in a clustered environment if the session was
created on server A, then if server A failed over to server B, Wicket
throws a StackOverflowError (Top of the stack trace is below).  Has
anybody seen this behaviour before?  I have seen some comments about
clusters failing over and exceptions being thrown on a subsequent use of
the back button; is this still the case as that is essentially what we are
doing with pages in a flow.

Any help appreciated.

java.lang.StackOverflowError
java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:600)

java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:789)
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1534)
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)

org.joda.time.chrono.ISOChronology$Stub.readObject(ISOChronology.java:210)
sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
java.util.ArrayList.readObject(ArrayList.java:591)
sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
org.apache.wicket.util.lang.Objects.byteArrayToObj

Re: StackOverflowError using 1.3.2

2008-04-03 Thread Gerolf Seitz
i was able to reproduce it in a quickstart.
see WICKET-1476

  Gerolf

On Wed, Apr 2, 2008 at 9:02 PM, Johan Compagner <[EMAIL PROTECTED]>
wrote:

> if we have a quickstart for this we could look for the solution...
>
>
> On Wed, Apr 2, 2008 at 8:26 PM, André Souza <[EMAIL PROTECTED]>
> wrote:
>
> > I have the exactly same problem. Someone found the solution?
> >
> > On Tue, Apr 1, 2008 at 6:09 PM, Johan Compagner <[EMAIL PROTECTED]>
> > wrote:
> >
> > > do you have a unit test or quickstart for this?
> > >
> > > johan
> > >
> > >
> > > On Tue, Apr 1, 2008 at 10:57 PM, Mark Lichtenberg <
> > [EMAIL PROTECTED]
> > > >
> > > wrote:
> > >
> > > > Hi,
> > > > We've been experiencing StackOverflowErrors when our application is
> > > > under a load of around 4 sessions, mostly clicks to load pages
> without
> > > > necessarily waiting for the previous click to finish.  I saw this
> was
> > > > addressed with jira issue 1365, and was part of 1.3.2, which we are
> > > > using. For good measure, we took out all instance variables
> > > > referencing Page objects, which was mentioned in the jira issue, but
> > > > this did not help either. We also tried the wicket nightly today,
> but
> > > > got the same results. Seems to be due to page deserialization - a
> > > > snippet of the exception is below.
> > > >
> > > > Any help would be greatly appreciated.
> > > >
> > > > 11:15:15,497 ERROR [[default]] Servlet.service() for servlet default
> > > > threw exception
> > > > java.lang.StackOverflowError
> > > >at java.io.ObjectInputStream
> > > > $PeekInputStream.read(ObjectInputStream.java:2213)
> > > >at java.io.ObjectInputStream
> > > > $PeekInputStream.readFully(ObjectInputStream.java:2226)
> > > >at java.io.ObjectInputStream
> > > > $BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
> > > >at java.io.ObjectInputStream
> > > > $BlockDataInputStream.readUTF(ObjectInputStream.java:2764)
> > > >at
> > java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
> > > >at
> > java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java
> > > > :600)
> > > >at
> > > >
> java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:
> > > > 789)
> > > >at java.io.ObjectInputStream.readNonProxyDesc(
> > > > ObjectInputStream.java:
> > > > 1534)
> > > >at
> > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java
> > > > :1466)
> > > >at
> > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > > 1699)
> > > >at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > > :1305)
> > > >at
> > > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> > > >at java.util.HashSet.readObject(HashSet.java:278)
> > > >at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown
> > Source)
> > > >at
> > > > sun
> > > > .reflect
> > > >
> > .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > > 25)
> > > >at java.lang.reflect.Method.invoke(Method.java:585)
> > > >at java.io.ObjectStreamClass.invokeReadObject(
> > > > ObjectStreamClass.java:
> > > > 946)
> > > >at
> > > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > > 1809)
> > > >at
> > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > > 1719)
> > > >at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > > :1305)
> > > >at java.io.ObjectInputStream.defaultReadFields(
> > > > ObjectInputStream.java:
> > > > 1908)
> > > >at
> > > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > > 1832)
> > > >at
> > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > > 1719)
> > > >at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > > :1305)
> > > >at
> > > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> > > >at java.util.HashMap.readObject(HashMap.java:1067)
> > > >at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown
> > Source)
> > > >at
> > > > sun
> > > > .reflect
> > > >
> > .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > > 25)
> > > >at java.lang.reflect.Method.invoke(Method.java:585)
> > > >at java.io.ObjectStreamClass.invokeReadObject(
> > > > ObjectStreamClass.java:
> > > > 946)
> > > >at
> > > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > > 1809)
> > > >at
> > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > > 1719)
> > > > 
> > > >at
> > > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > > 1719)
> > > >at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > > :1305)
> > > >at
> > > java.io.ObjectInputStream.readObject(ObjectInputS

Re: StackOverflowError using 1.3.2

2008-04-02 Thread Johan Compagner
if we have a quickstart for this we could look for the solution...


On Wed, Apr 2, 2008 at 8:26 PM, André Souza <[EMAIL PROTECTED]> wrote:

> I have the exactly same problem. Someone found the solution?
>
> On Tue, Apr 1, 2008 at 6:09 PM, Johan Compagner <[EMAIL PROTECTED]>
> wrote:
>
> > do you have a unit test or quickstart for this?
> >
> > johan
> >
> >
> > On Tue, Apr 1, 2008 at 10:57 PM, Mark Lichtenberg <
> [EMAIL PROTECTED]
> > >
> > wrote:
> >
> > > Hi,
> > > We've been experiencing StackOverflowErrors when our application is
> > > under a load of around 4 sessions, mostly clicks to load pages without
> > > necessarily waiting for the previous click to finish.  I saw this was
> > > addressed with jira issue 1365, and was part of 1.3.2, which we are
> > > using. For good measure, we took out all instance variables
> > > referencing Page objects, which was mentioned in the jira issue, but
> > > this did not help either. We also tried the wicket nightly today, but
> > > got the same results. Seems to be due to page deserialization - a
> > > snippet of the exception is below.
> > >
> > > Any help would be greatly appreciated.
> > >
> > > 11:15:15,497 ERROR [[default]] Servlet.service() for servlet default
> > > threw exception
> > > java.lang.StackOverflowError
> > >at java.io.ObjectInputStream
> > > $PeekInputStream.read(ObjectInputStream.java:2213)
> > >at java.io.ObjectInputStream
> > > $PeekInputStream.readFully(ObjectInputStream.java:2226)
> > >at java.io.ObjectInputStream
> > > $BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
> > >at java.io.ObjectInputStream
> > > $BlockDataInputStream.readUTF(ObjectInputStream.java:2764)
> > >at
> java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
> > >at
> java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java
> > > :600)
> > >at
> > > java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:
> > > 789)
> > >at java.io.ObjectInputStream.readNonProxyDesc(
> > > ObjectInputStream.java:
> > > 1534)
> > >at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java
> > > :1466)
> > >at
> > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > 1699)
> > >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > :1305)
> > >at
> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> > >at java.util.HashSet.readObject(HashSet.java:278)
> > >at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown
> Source)
> > >at
> > > sun
> > > .reflect
> > >
> .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > 25)
> > >at java.lang.reflect.Method.invoke(Method.java:585)
> > >at java.io.ObjectStreamClass.invokeReadObject(
> > > ObjectStreamClass.java:
> > > 946)
> > >at
> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > 1809)
> > >at
> > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > 1719)
> > >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > :1305)
> > >at java.io.ObjectInputStream.defaultReadFields(
> > > ObjectInputStream.java:
> > > 1908)
> > >at
> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > 1832)
> > >at
> > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > 1719)
> > >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > :1305)
> > >at
> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> > >at java.util.HashMap.readObject(HashMap.java:1067)
> > >at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown
> Source)
> > >at
> > > sun
> > > .reflect
> > >
> .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > > 25)
> > >at java.lang.reflect.Method.invoke(Method.java:585)
> > >at java.io.ObjectStreamClass.invokeReadObject(
> > > ObjectStreamClass.java:
> > > 946)
> > >at
> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > > 1809)
> > >at
> > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > 1719)
> > > 
> > >at
> > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > > 1719)
> > >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > > :1305)
> > >at
> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> > >at org.apache.wicket.util.lang.Objects.byteArrayToObject(
> > > Objects.java:
> > > 392)
> > >at
> > > org
> > > .apache
> > > .wicket
> > > .protocol
> > > .http
> > >
> .pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
> > >at
> > > org
> > > .apache
> > > .wicket
> > > .protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
> 

Re: StackOverflowError using 1.3.2

2008-04-02 Thread André Souza
I have the exactly same problem. Someone found the solution?

On Tue, Apr 1, 2008 at 6:09 PM, Johan Compagner <[EMAIL PROTECTED]>
wrote:

> do you have a unit test or quickstart for this?
>
> johan
>
>
> On Tue, Apr 1, 2008 at 10:57 PM, Mark Lichtenberg <[EMAIL PROTECTED]
> >
> wrote:
>
> > Hi,
> > We've been experiencing StackOverflowErrors when our application is
> > under a load of around 4 sessions, mostly clicks to load pages without
> > necessarily waiting for the previous click to finish.  I saw this was
> > addressed with jira issue 1365, and was part of 1.3.2, which we are
> > using. For good measure, we took out all instance variables
> > referencing Page objects, which was mentioned in the jira issue, but
> > this did not help either. We also tried the wicket nightly today, but
> > got the same results. Seems to be due to page deserialization - a
> > snippet of the exception is below.
> >
> > Any help would be greatly appreciated.
> >
> > 11:15:15,497 ERROR [[default]] Servlet.service() for servlet default
> > threw exception
> > java.lang.StackOverflowError
> >at java.io.ObjectInputStream
> > $PeekInputStream.read(ObjectInputStream.java:2213)
> >at java.io.ObjectInputStream
> > $PeekInputStream.readFully(ObjectInputStream.java:2226)
> >at java.io.ObjectInputStream
> > $BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
> >at java.io.ObjectInputStream
> > $BlockDataInputStream.readUTF(ObjectInputStream.java:2764)
> >at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
> >at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java
> > :600)
> >at
> > java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:
> > 789)
> >at java.io.ObjectInputStream.readNonProxyDesc(
> > ObjectInputStream.java:
> > 1534)
> >at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java
> > :1466)
> >at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > 1699)
> >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > :1305)
> >at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> >at java.util.HashSet.readObject(HashSet.java:278)
> >at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
> >at
> > sun
> > .reflect
> > .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > 25)
> >at java.lang.reflect.Method.invoke(Method.java:585)
> >at java.io.ObjectStreamClass.invokeReadObject(
> > ObjectStreamClass.java:
> > 946)
> >at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > 1809)
> >at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > 1719)
> >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > :1305)
> >at java.io.ObjectInputStream.defaultReadFields(
> > ObjectInputStream.java:
> > 1908)
> >at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > 1832)
> >at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > 1719)
> >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > :1305)
> >at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> >at java.util.HashMap.readObject(HashMap.java:1067)
> >at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
> >at
> > sun
> > .reflect
> > .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> > 25)
> >at java.lang.reflect.Method.invoke(Method.java:585)
> >at java.io.ObjectStreamClass.invokeReadObject(
> > ObjectStreamClass.java:
> > 946)
> >at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> > 1809)
> >at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > 1719)
> > 
> >at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> > 1719)
> >at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> > :1305)
> >at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> >at org.apache.wicket.util.lang.Objects.byteArrayToObject(
> > Objects.java:
> > 392)
> >at
> > org
> > .apache
> > .wicket
> > .protocol
> > .http
> > .pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
> >at
> > org
> > .apache
> > .wicket
> > .protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
> >at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore
> > $SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)
> >at org.apache.wicket.Session.getPage(Session.java:751)
> >at org.apache.wicket.protocol.http.pagestore.AbstractPageStore
> > $PageHolder.readResolve(AbstractPageStore.java:363)
> >at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Sourc

Re: StackOverflowError using 1.3.2

2008-04-01 Thread Johan Compagner
do you have a unit test or quickstart for this?

johan


On Tue, Apr 1, 2008 at 10:57 PM, Mark Lichtenberg <[EMAIL PROTECTED]>
wrote:

> Hi,
> We've been experiencing StackOverflowErrors when our application is
> under a load of around 4 sessions, mostly clicks to load pages without
> necessarily waiting for the previous click to finish.  I saw this was
> addressed with jira issue 1365, and was part of 1.3.2, which we are
> using. For good measure, we took out all instance variables
> referencing Page objects, which was mentioned in the jira issue, but
> this did not help either. We also tried the wicket nightly today, but
> got the same results. Seems to be due to page deserialization - a
> snippet of the exception is below.
>
> Any help would be greatly appreciated.
>
> 11:15:15,497 ERROR [[default]] Servlet.service() for servlet default
> threw exception
> java.lang.StackOverflowError
>at java.io.ObjectInputStream
> $PeekInputStream.read(ObjectInputStream.java:2213)
>at java.io.ObjectInputStream
> $PeekInputStream.readFully(ObjectInputStream.java:2226)
>at java.io.ObjectInputStream
> $BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
>at java.io.ObjectInputStream
> $BlockDataInputStream.readUTF(ObjectInputStream.java:2764)
>at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
>at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java
> :600)
>at
> java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:
> 789)
>at java.io.ObjectInputStream.readNonProxyDesc(
> ObjectInputStream.java:
> 1534)
>at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java
> :1466)
>at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> 1699)
>at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> :1305)
>at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>at java.util.HashSet.readObject(HashSet.java:278)
>at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
>at
> sun
> .reflect
> .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>at java.lang.reflect.Method.invoke(Method.java:585)
>at java.io.ObjectStreamClass.invokeReadObject(
> ObjectStreamClass.java:
> 946)
>at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> 1809)
>at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> 1719)
>at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> :1305)
>at java.io.ObjectInputStream.defaultReadFields(
> ObjectInputStream.java:
> 1908)
>at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> 1832)
>at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> 1719)
>at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> :1305)
>at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>at java.util.HashMap.readObject(HashMap.java:1067)
>at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
>at
> sun
> .reflect
> .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>at java.lang.reflect.Method.invoke(Method.java:585)
>at java.io.ObjectStreamClass.invokeReadObject(
> ObjectStreamClass.java:
> 946)
>at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
> 1809)
>at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> 1719)
> 
>at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
> 1719)
>at java.io.ObjectInputStream.readObject0(ObjectInputStream.java
> :1305)
>at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>at org.apache.wicket.util.lang.Objects.byteArrayToObject(
> Objects.java:
> 392)
>at
> org
> .apache
> .wicket
> .protocol
> .http
> .pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
>at
> org
> .apache
> .wicket
> .protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
>at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore
> $SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)
>at org.apache.wicket.Session.getPage(Session.java:751)
>at org.apache.wicket.protocol.http.pagestore.AbstractPageStore
> $PageHolder.readResolve(AbstractPageStore.java:363)
>at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
>at
> sun
> .reflect
> .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
> ..
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


StackOverflowError using 1.3.2

2008-04-01 Thread Mark Lichtenberg

Hi,
We've been experiencing StackOverflowErrors when our application is  
under a load of around 4 sessions, mostly clicks to load pages without  
necessarily waiting for the previous click to finish.  I saw this was  
addressed with jira issue 1365, and was part of 1.3.2, which we are  
using. For good measure, we took out all instance variables  
referencing Page objects, which was mentioned in the jira issue, but  
this did not help either. We also tried the wicket nightly today, but  
got the same results. Seems to be due to page deserialization - a  
snippet of the exception is below.


Any help would be greatly appreciated.

11:15:15,497 ERROR [[default]] Servlet.service() for servlet default  
threw exception

java.lang.StackOverflowError
	at java.io.ObjectInputStream 
$PeekInputStream.read(ObjectInputStream.java:2213)
	at java.io.ObjectInputStream 
$PeekInputStream.readFully(ObjectInputStream.java:2226)
	at java.io.ObjectInputStream 
$BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
	at java.io.ObjectInputStream 
$BlockDataInputStream.readUTF(ObjectInputStream.java:2764)

at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:600)
	at  
java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java: 
789)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: 
1534)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1699)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashSet.readObject(HashSet.java:278)
at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java: 
946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1809)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java: 
1908)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1832)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashMap.readObject(HashMap.java:1067)
at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java: 
946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1809)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)


	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
	at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java: 
392)
	at  
org 
.apache 
.wicket 
.protocol 
.http 
.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
	at  
org 
.apache 
.wicket 
.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
	at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore 
$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)

at org.apache.wicket.Session.getPage(Session.java:751)
	at org.apache.wicket.protocol.http.pagestore.AbstractPageStore 
$PageHolder.readResolve(AbstractPageStore.java:363)

at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

..

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [Newbie][1.3 beta] StackOverflowError on LogFactory.getContextClassLoader

2007-10-28 Thread Pills

I found a way I've just copied all *.jar from /lib in
"wicket-examples-1.3.0-beta4.war" to "myapp/WEB-INF/lib", ant that works
fine ;)

I still don't know exactly which jar are required by Wicket, but now it
works 

;) 

-- 
View this message in context: 
http://www.nabble.com/-Newbie--1.3-beta--StackOverflowError-on-LogFactory.getContextClassLoader-tf4706676.html#a13454622
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[Newbie][1.3 beta] StackOverflowError on LogFactory.getContextClassLoader

2007-10-28 Thread Piller Sébastien

Hello everybody,

I'm a new user of Wicket, and I got to make the HelloWorldApplication 
works with Wicket 1.2.6 . I tried to do the same with wicket 1.3 beta, 
but it throw a StackOverflowError:


   java.lang.StackOverflowError
   at java.lang.reflect.Method.copy(Unknown Source)
   at java.lang.reflect.ReflectAccess.copyMethod(Unknown Source)
   at sun.reflect.ReflectionFactory.copyMethod(Unknown Source)
   at java.lang.Class.searchMethods(Unknown Source)
   at java.lang.Class.getMethod0(Unknown Source)
   at java.lang.Class.getMethod(Unknown Source)
   at
   
org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:482)
   at org.apache.commons.logging.LogFactory$1.run(LogFactory.java:266)
   at java.security.AccessController.doPrivileged(Native Method)
   at
   org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:262)
   at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
   at
   org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)
   at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:88)
   at
   
org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
   at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
   at
   org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)
   at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:88)
  
   [loop on these lines]

   at
   
org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
   at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
   at
   org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)
   at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:88)


It looks like the logging API isn't correctly set.
Is there something I've made wrong?

Thanks for your help!

S. Piller

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]