You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Martin Asenov <mA...@velti.com> on 2010/03/12 14:14:21 UTC

why is hashcode() called on page deserialization?

Hello, everyone!

I get the exception:

java.lang.NullPointerException
     at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)
     at java.util.HashMap.putForCreate(HashMap.java:413)
     at java.util.HashMap.readObject(HashMap.java:1031)
     at java.lang.reflect.Method.invoke(Method.java:597)

      .............

     at org.apache.wicket.Component.readObject(Component.java:4465)

      .............

     at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:409)
     at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:234)
     at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:735)
     at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:310)
     at org.apache.wicket.Session.getPage(Session.java:779)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458)
     at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)

...............

the field that is null is probably because it's not loaded by Spring. Anyway, why should it call hashCode(), and how could I avoid it?

Best,
Martin


RE: why is hashcode() called on page deserialization?

Posted by Martin Asenov <mA...@velti.com>.
The issue is that the object that hashCode() is called on contains a @Lob object, I think it has to do with it...

Regards,

-----Original Message-----
From: Wilhelmsen Tor Iver [mailto:TorIverW@arrive.no] 
Sent: Monday, March 15, 2010 10:01 AM
To: users@wicket.apache.org
Subject: SV: why is hashcode() called on page deserialization?

> java.lang.NullPointerException
>      at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)

This looks a lot like an exception we get in one project as well, where a bean serialized into the DiskPageStore comes back with all properties set to null (including the ones tested for in hashCode() thus the NPE). Could this have happened during serialization, i.e. that the object write operation somehow failed to write any properties? The bean in question does not have any transient fields, and there is no custom object writer or reader.

- Tor Iver

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


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


SV: why is hashcode() called on page deserialization?

Posted by Wilhelmsen Tor Iver <To...@arrive.no>.
> java.lang.NullPointerException
>      at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)

This looks a lot like an exception we get in one project as well, where a bean serialized into the DiskPageStore comes back with all properties set to null (including the ones tested for in hashCode() thus the NPE). Could this have happened during serialization, i.e. that the object write operation somehow failed to write any properties? The bean in question does not have any transient fields, and there is no custom object writer or reader.

- Tor Iver

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


RE: why is hashcode() called on page deserialization?

Posted by Martin Asenov <mA...@velti.com>.
Thanks, Jonas, just will try to locate the cache and remove it.

Best,
Martin

-----Original Message-----
From: Jonas [mailto:barney2k7@gmail.com] 
Sent: Friday, March 12, 2010 4:56 PM
To: users@wicket.apache.org
Subject: Re: why is hashcode() called on page deserialization?

That's odd - are you sure you restarted/redeployed/etc. your webapp properly?
Maybe you should also try clearing the directory where the DiskPageStore stores
the serialized pages - just to make sure you won't get an old page again.
>From the stacktrace I can see you have a wicket component that holds on
to an ArrayList (I guess that's your ListView). The ArrayList's elements hold
in turn the HashMap in question. If that's correct, your problem should go away
if the Component no longer directly holds on to the ArrayList (e.g. by
using LoadableDetachableModel)
If this still doesn't help, I suggest you try setting an Exception
Breakpoint on NullPointerException
in your debugger and examine the objects being serialized.
You can see the Objects e.g. in as the first parameter of
ObjectInputStream.readSerialData

cheers,
Jonas

On Fri, Mar 12, 2010 at 3:36 PM, Martin Asenov <mA...@velti.com> wrote:
> Well, Jonas, here's the stacktrace:
>
> P.S. LoadableDetachableModel didn't help.... Regards and thanks,
> Martin
>
> java.lang.NullPointerException
>     at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)
>     at java.util.HashMap.putForCreate(HashMap.java:413)
>     at java.util.HashMap.readObject(HashMap.java:1031)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at java.util.HashMap.readObject(HashMap.java:1029)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at java.util.ArrayList.readObject(ArrayList.java:593)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
>     at org.apache.wicket.Component.readObject(Component.java:4465)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:409)
>     at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:234)
>     at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:735)
>     at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:310)
>     at org.apache.wicket.Session.getPage(Session.java:779)
>     at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458)
>     at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
>     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
>     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
>     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
>     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468)
>     at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:301)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>     at java.lang.Thread.run(Thread.java:619)
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:51 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> Well, the stacktrace you posted is about a HashMap, so it must be
> around somewhere...?
> I guess you didn't post the full stacktrace, so it may be deeply
> hidden in something you
> reference from a wicket Component.
> Maybe you'll find it by examining the full stacktrace, or using a debugger.
>
> cheers,
> Jonas
>
> On Fri, Mar 12, 2010 at 2:39 PM, Martin Asenov <mA...@velti.com> wrote:
>> I don't have any HashMap-s that use SMSEvent object as a key. Only List-s
>>
>> Regards,
>> Martin
>>
>> -----Original Message-----
>> From: Jonas [mailto:barney2k7@gmail.com]
>> Sent: Friday, March 12, 2010 3:29 PM
>> To: users@wicket.apache.org
>> Subject: Re: why is hashcode() called on page deserialization?
>>
>> Yes, exactly. But the stacktrace you posted is about a HashMap that is
>> directly referenced from one of your
>> components - you should also use e.g. LoadableDetachableModel there, I guess.
>>
>> On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
>>> Hi, Jonas!
>>>
>>> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>>>
>>> Regards,
>>>
>>> -----Original Message-----
>>> From: Jonas [mailto:barney2k7@gmail.com]
>>> Sent: Friday, March 12, 2010 3:18 PM
>>> To: users@wicket.apache.org
>>> Subject: Re: why is hashcode() called on page deserialization?
>>>
>>> I guess you have a HashMap field in your component, which has an entry with an
>>> SMSEvent object as key. You probably shouldn't hold on to references to spring
>>> loaded objects. Instead, you should just have an accessor object, which knows
>>> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>>>
>>> cheers,
>>> Jonas
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


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


Re: why is hashcode() called on page deserialization?

Posted by Jonas <ba...@gmail.com>.
That's odd - are you sure you restarted/redeployed/etc. your webapp properly?
Maybe you should also try clearing the directory where the DiskPageStore stores
the serialized pages - just to make sure you won't get an old page again.
>From the stacktrace I can see you have a wicket component that holds on
to an ArrayList (I guess that's your ListView). The ArrayList's elements hold
in turn the HashMap in question. If that's correct, your problem should go away
if the Component no longer directly holds on to the ArrayList (e.g. by
using LoadableDetachableModel)
If this still doesn't help, I suggest you try setting an Exception
Breakpoint on NullPointerException
in your debugger and examine the objects being serialized.
You can see the Objects e.g. in as the first parameter of
ObjectInputStream.readSerialData

cheers,
Jonas

On Fri, Mar 12, 2010 at 3:36 PM, Martin Asenov <mA...@velti.com> wrote:
> Well, Jonas, here's the stacktrace:
>
> P.S. LoadableDetachableModel didn't help.... Regards and thanks,
> Martin
>
> java.lang.NullPointerException
>     at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)
>     at java.util.HashMap.putForCreate(HashMap.java:413)
>     at java.util.HashMap.readObject(HashMap.java:1031)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at java.util.HashMap.readObject(HashMap.java:1029)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at java.util.ArrayList.readObject(ArrayList.java:593)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
>     at org.apache.wicket.Component.readObject(Component.java:4465)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>     at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:409)
>     at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:234)
>     at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:735)
>     at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:310)
>     at org.apache.wicket.Session.getPage(Session.java:779)
>     at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458)
>     at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
>     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
>     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
>     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
>     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468)
>     at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:301)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>     at java.lang.Thread.run(Thread.java:619)
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:51 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> Well, the stacktrace you posted is about a HashMap, so it must be
> around somewhere...?
> I guess you didn't post the full stacktrace, so it may be deeply
> hidden in something you
> reference from a wicket Component.
> Maybe you'll find it by examining the full stacktrace, or using a debugger.
>
> cheers,
> Jonas
>
> On Fri, Mar 12, 2010 at 2:39 PM, Martin Asenov <mA...@velti.com> wrote:
>> I don't have any HashMap-s that use SMSEvent object as a key. Only List-s
>>
>> Regards,
>> Martin
>>
>> -----Original Message-----
>> From: Jonas [mailto:barney2k7@gmail.com]
>> Sent: Friday, March 12, 2010 3:29 PM
>> To: users@wicket.apache.org
>> Subject: Re: why is hashcode() called on page deserialization?
>>
>> Yes, exactly. But the stacktrace you posted is about a HashMap that is
>> directly referenced from one of your
>> components - you should also use e.g. LoadableDetachableModel there, I guess.
>>
>> On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
>>> Hi, Jonas!
>>>
>>> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>>>
>>> Regards,
>>>
>>> -----Original Message-----
>>> From: Jonas [mailto:barney2k7@gmail.com]
>>> Sent: Friday, March 12, 2010 3:18 PM
>>> To: users@wicket.apache.org
>>> Subject: Re: why is hashcode() called on page deserialization?
>>>
>>> I guess you have a HashMap field in your component, which has an entry with an
>>> SMSEvent object as key. You probably shouldn't hold on to references to spring
>>> loaded objects. Instead, you should just have an accessor object, which knows
>>> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>>>
>>> cheers,
>>> Jonas
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


RE: why is hashcode() called on page deserialization?

Posted by Martin Asenov <mA...@velti.com>.
Well, Jonas, here's the stacktrace:

P.S. LoadableDetachableModel didn't help.... Regards and thanks,
Martin

java.lang.NullPointerException
     at com.company.project.event.SMSEvent.hashCode(SMSEvent.java:334)
     at java.util.HashMap.putForCreate(HashMap.java:413)
     at java.util.HashMap.readObject(HashMap.java:1031)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
     at java.util.HashMap.readObject(HashMap.java:1029)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
     at java.util.ArrayList.readObject(ArrayList.java:593)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
     at org.apache.wicket.Component.readObject(Component.java:4465)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
     at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:409)
     at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:234)
     at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:735)
     at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:310)
     at org.apache.wicket.Session.getPage(Session.java:779)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458)
     at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468)
     at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:301)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
     at java.lang.Thread.run(Thread.java:619)

-----Original Message-----
From: Jonas [mailto:barney2k7@gmail.com] 
Sent: Friday, March 12, 2010 3:51 PM
To: users@wicket.apache.org
Subject: Re: why is hashcode() called on page deserialization?

Well, the stacktrace you posted is about a HashMap, so it must be
around somewhere...?
I guess you didn't post the full stacktrace, so it may be deeply
hidden in something you
reference from a wicket Component.
Maybe you'll find it by examining the full stacktrace, or using a debugger.

cheers,
Jonas

On Fri, Mar 12, 2010 at 2:39 PM, Martin Asenov <mA...@velti.com> wrote:
> I don't have any HashMap-s that use SMSEvent object as a key. Only List-s
>
> Regards,
> Martin
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:29 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> Yes, exactly. But the stacktrace you posted is about a HashMap that is
> directly referenced from one of your
> components - you should also use e.g. LoadableDetachableModel there, I guess.
>
> On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
>> Hi, Jonas!
>>
>> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>>
>> Regards,
>>
>> -----Original Message-----
>> From: Jonas [mailto:barney2k7@gmail.com]
>> Sent: Friday, March 12, 2010 3:18 PM
>> To: users@wicket.apache.org
>> Subject: Re: why is hashcode() called on page deserialization?
>>
>> I guess you have a HashMap field in your component, which has an entry with an
>> SMSEvent object as key. You probably shouldn't hold on to references to spring
>> loaded objects. Instead, you should just have an accessor object, which knows
>> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>>
>> cheers,
>> Jonas
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


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


Re: why is hashcode() called on page deserialization?

Posted by Jonas <ba...@gmail.com>.
Well, the stacktrace you posted is about a HashMap, so it must be
around somewhere...?
I guess you didn't post the full stacktrace, so it may be deeply
hidden in something you
reference from a wicket Component.
Maybe you'll find it by examining the full stacktrace, or using a debugger.

cheers,
Jonas

On Fri, Mar 12, 2010 at 2:39 PM, Martin Asenov <mA...@velti.com> wrote:
> I don't have any HashMap-s that use SMSEvent object as a key. Only List-s
>
> Regards,
> Martin
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:29 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> Yes, exactly. But the stacktrace you posted is about a HashMap that is
> directly referenced from one of your
> components - you should also use e.g. LoadableDetachableModel there, I guess.
>
> On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
>> Hi, Jonas!
>>
>> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>>
>> Regards,
>>
>> -----Original Message-----
>> From: Jonas [mailto:barney2k7@gmail.com]
>> Sent: Friday, March 12, 2010 3:18 PM
>> To: users@wicket.apache.org
>> Subject: Re: why is hashcode() called on page deserialization?
>>
>> I guess you have a HashMap field in your component, which has an entry with an
>> SMSEvent object as key. You probably shouldn't hold on to references to spring
>> loaded objects. Instead, you should just have an accessor object, which knows
>> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>>
>> cheers,
>> Jonas
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


RE: why is hashcode() called on page deserialization?

Posted by Martin Asenov <mA...@velti.com>.
I don't have any HashMap-s that use SMSEvent object as a key. Only List-s

Regards,
Martin

-----Original Message-----
From: Jonas [mailto:barney2k7@gmail.com] 
Sent: Friday, March 12, 2010 3:29 PM
To: users@wicket.apache.org
Subject: Re: why is hashcode() called on page deserialization?

Yes, exactly. But the stacktrace you posted is about a HashMap that is
directly referenced from one of your
components - you should also use e.g. LoadableDetachableModel there, I guess.

On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
> Hi, Jonas!
>
> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>
> Regards,
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:18 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> I guess you have a HashMap field in your component, which has an entry with an
> SMSEvent object as key. You probably shouldn't hold on to references to spring
> loaded objects. Instead, you should just have an accessor object, which knows
> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>
> cheers,
> Jonas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


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


Re: why is hashcode() called on page deserialization?

Posted by Jonas <ba...@gmail.com>.
Yes, exactly. But the stacktrace you posted is about a HashMap that is
directly referenced from one of your
components - you should also use e.g. LoadableDetachableModel there, I guess.

On Fri, Mar 12, 2010 at 2:25 PM, Martin Asenov <mA...@velti.com> wrote:
> Hi, Jonas!
>
> I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?
>
> Regards,
>
> -----Original Message-----
> From: Jonas [mailto:barney2k7@gmail.com]
> Sent: Friday, March 12, 2010 3:18 PM
> To: users@wicket.apache.org
> Subject: Re: why is hashcode() called on page deserialization?
>
> I guess you have a HashMap field in your component, which has an entry with an
> SMSEvent object as key. You probably shouldn't hold on to references to spring
> loaded objects. Instead, you should just have an accessor object, which knows
> how to reload that spring loaded object, e.g. LoadableDetachableModel.
>
> cheers,
> Jonas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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


RE: why is hashcode() called on page deserialization?

Posted by Martin Asenov <mA...@velti.com>.
Hi, Jonas!

I only have some ListView-s with List<SMSEvent> passed as an argument. You mean to replace the List with LoadableDetachableModel, that returns the List?

Regards,

-----Original Message-----
From: Jonas [mailto:barney2k7@gmail.com] 
Sent: Friday, March 12, 2010 3:18 PM
To: users@wicket.apache.org
Subject: Re: why is hashcode() called on page deserialization?

I guess you have a HashMap field in your component, which has an entry with an
SMSEvent object as key. You probably shouldn't hold on to references to spring
loaded objects. Instead, you should just have an accessor object, which knows
how to reload that spring loaded object, e.g. LoadableDetachableModel.

cheers,
Jonas

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


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


Re: why is hashcode() called on page deserialization?

Posted by Jonas <ba...@gmail.com>.
I guess you have a HashMap field in your component, which has an entry with an
SMSEvent object as key. You probably shouldn't hold on to references to spring
loaded objects. Instead, you should just have an accessor object, which knows
how to reload that spring loaded object, e.g. LoadableDetachableModel.

cheers,
Jonas

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