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-tp19083666p19083842.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]
