My ExternalApplicationBean IS serializable, it's
java.util.RandomAccessSubList that isn't serializable but that's something I
can't change I guess..
My ExternalApplicationBean holds a HashMap<String,List>

Please look at the jira issue for MyFaces 
http://issues.apache.org/jira/browse/TRINIDAD-27
and the line
List.subList() does not return a serializable object, because it can return
a RandomAccessSubList, which is not serializable.


John Patterson wrote:
> 
> Any object stored in a model must be serializable and your object
> com.tvh.website.application.external.ApplicationPage$ExternalApplicationBean
> is not.
> 
> You can either make it serializable or use a model that finds your
> ExternalApplicationBean when it loads e.g. LoadableDetachableModel.  You
> can even nest this model inside a CompoundPropertyModel like
> 
> new CompoundPropertyModel(new
> MyBeanFindingLoadableDetachableModel(myBeansId)))
> 
> JD
> 
> The issue is due to how wicket saves pages to disc in order to support the
> back button.
> 
> 
> Marieke Vandamme wrote:
>> 
>> Hello,
>> 
>> I'm using a rather complex CompoundPropertyModel on my Form. That Form
>> contains multiple Panels that also use the same CompoundPropertyModel. So
>> I can't post any source code, but I hope my stacktrace will be enough.
>> 
>> I also found a rather simular problem on the jira site, but not for
>> wicket but MyFaces. 
>> http://issues.apache.org/jira/browse/TRINIDAD-27
>> 
>> Should I post this on the jira for wicket or am I doing something wrong?
>> Thanks !
>> 
>> 
>> ERROR - Error serializing object class
>> com.tvh.website.application.external.ApplicationPage [object=[Page class
>> = com.tvh.website.application.external.ApplicationPage, id = 0, version =
>> 0, ajax = 2]]
>> org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
>> Unable to serialize class: java.util.RandomAccessSubList
>> Field hierarchy is:
>>   0 [class=com.tvh.website.application.external.ApplicationPage, path=0]
>>     private java.lang.Object org.apache.wicket.MarkupContainer.children
>> [class=[Ljava.lang.Object;]
>>       private java.lang.Object
>> org.apache.wicket.MarkupContainer.children[2]
>> [class=org.apache.wicket.markup.html.form.SubmitLink,
>> path=0:btnSubmitApplicant]
>>         private org.apache.wicket.markup.html.form.Form
>> org.apache.wicket.markup.html.form.AbstractSubmitLink.form
>> [class=com.tvh.website.application.ApplicantPanel$ApplicantForm,
>> path=0:pnlApplicant:webform]
>>           java.lang.Object org.apache.wicket.Component.data
>> [class=org.apache.wicket.model.CompoundPropertyModel]
>>             private java.lang.Object
>> org.apache.wicket.model.CompoundPropertyModel.target
>> [class=com.tvh.website.application.external.ApplicationPage$ExternalApplicationBean]
>>               private java.util.HashMap
>> com.tvh.website.application.external.ApplicationPage$ExternalApplicationBean.extras
>> [class=java.util.HashMap]
>>                 private java.util.HashMap
>> com.tvh.website.application.external.ApplicationPage$ExternalApplicationBean.extras[write:1][write:2]
>> [class=java.util.RandomAccessSubList] <----- field that is not
>> serializable
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:349)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:63)
>>         at
>> org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:497)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1116)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>         at java.util.HashMap.writeObject(HashMap.java:1001)
>>         at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:504)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:618)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:541)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:618)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:541)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:618)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:541)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:618)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:541)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:395)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:618)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:541)
>>         at
>> org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:687)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
>>         at
>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:127)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
>>         at
>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1097)
>>         at
>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:200)
>>         at
>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:814)
>>         at
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:327)
>>         at org.apache.wicket.Session.requestDetached(Session.java:1391)
>>         at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1094)
>>         at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1365)
>>         at org.apache.wicket.RequestCycle.request(RequestCycle.java:497)
>>         at
>> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:387)
>>         at
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>         at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>         at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>>         at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>         at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>         at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>         at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>>         at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>>         at
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>         at
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>         at
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>         at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>         at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.io.NotSerializableException:
>> java.util.RandomAccessSubList
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>         at java.util.HashMap.writeObject(HashMap.java:1001)
>>         at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>         at
>> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>>         at org.apache.wicket.Component.writeObject(Component.java:4339)
>>         at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>>         at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>         at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
>>         at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>         at
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>         at
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>         at
>> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:119)
>>         ... 25 more
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/NotSerializableException%3A-java.util.RandomAccessSubList-tp19083666p19083931.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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

Reply via email to