Text field "name" in "logicalEntityForm" has an PropertyModel targeting a DetailSearchCriteria, this class has the field "detailParam" of type DetailParam, and DetailParam has the field "names" of a not serializable property type: List A lot of List implementations are serializable, but the one at the DetailParam is not.
On Fri, Feb 25, 2011 at 12:38 PM, Martin Grigorov <[email protected]>wrote: > There are no changes in Wicket related to the serialization checks. > There were some improvements in latest 1.4.x and 1.5.x code. > From which 1.4.x version exactly did you upgrade to 1.5 ? > > About 'switch off' - > see getApplication().getPageManager().supportsVersioning(). > Better see how to avoid serializing the DB content than switching off > serialization. > > On Fri, Feb 25, 2011 at 5:30 PM, Zhubin Salehi <[email protected]> wrote: > > > > > Hi, > > > > Since I migrated to Wicket 1.5 I get exceptions like this in my log file: > > > > 2011-02-25 10:28:07,234 [http-8080-Processor21] ERROR > > org.apache.wicket.util.lang.WicketObjects - Error serializing object > class > > com.route1.mobi.map3.web.pages.assemblage.FindHost [object=[Page class = > > com.route1.mobi.map3.web.pages.assemblage.FindHost, id = 5, render count > = > > 1]] > > > > > org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: > > Unable to serialize class: $java.util.List$$EnhancerByCGLIB$$d1658214 > > Field hierarchy is: > > 5 [class=com.route1.mobi.map3.web.pages.assemblage.FindHost, path=5] > > private java.lang.Object org.apache.wicket.MarkupContainer.children > > [class=[Ljava.lang.Object;] > > private java.lang.Object > org.apache.wicket.MarkupContainer.children[6] > > [class=com.route1.mobi.map3.web.pages.assemblage.FindHost$HostForm, > > path=5:logicalEntityForm] > > private java.lang.Object > org.apache.wicket.MarkupContainer.children > > [class=[Ljava.lang.Object;] > > private java.lang.Object > > org.apache.wicket.MarkupContainer.children[0] > > [class=org.apache.wicket.markup.html.WebMarkupContainer, > > path=5:logicalEntityForm:mainTable] > > private java.lang.Object > > org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] > > private java.lang.String > > org.apache.wicket.markup.html.form.FormComponent.typeName[2] > > [class=org.apache.wicket.markup.html.form.TextField, > > path=5:logicalEntityForm:mainTable:name] > > java.lang.Object org.apache.wicket.Component.data > > [class=org.apache.wicket.model.PropertyModel] > > private java.lang.Object > > org.apache.wicket.model.AbstractPropertyModel.target > > > > > [class=com.route1.mobi.dao.model.AssemblageItemSearchCriteria$DetailSearchCriteria] > > private com.route1.mobi.model.DetailParam > > > > > com.route1.mobi.dao.model.AssemblageItemSearchCriteria$DetailSearchCriteria.detailParam > > [class=com.route1.mobi.model.DetailParam] > > private java.util.List > > com.route1.mobi.model.DetailParam.names > > [class=$java.util.List$$EnhancerByCGLIB$$d1658214] <----- field that is > not > > serializable > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:387) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:647) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:570) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:366) > > at > > > > > org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:716) > > at > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298) > > at > > > > > org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:129) > > at > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298) > > at > > > > > org.apache.wicket.util.lang.WicketObjects.objectToByteArray(WicketObjects.java:482) > > at > > > > > org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:364) > > at > > > > > org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:153) > > at > > > > > org.apache.wicket.page.PersistentPageManager$PersitentRequestAdapter.storeTouchedPages(PersistentPageManager.java:335) > > at > > > > > org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:185) > > at > > > > > org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98) > > at > > > > > org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:68) > > at > > > > > org.apache.wicket.page.PageAccessSynchronizer$1.commitRequest(PageAccessSynchronizer.java:203) > > at org.apache.wicket.Application$2.onDetach(Application.java:1521) > > at > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:99) > > at > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:95) > > at > > > > > org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:79) > > at > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:93) > > at > > > > > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:538) > > at > > > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:479) > > at > > > > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:257) > > at > > > > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:138) > > at > > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194) > > 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:172) > > 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:174) > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) > > 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:595) > > Caused by: java.io.NotSerializableException: > > $java.util.List$$EnhancerByCGLIB$$d1658214 > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075) > > at > > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > > at > > > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > > at > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > > at > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > > at > > > > > org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121) > > ... 33 more > > > > I understand that iBATIS uses CGLIB for lazy loading and CGLIB generates > > classes that are not serializable, what I don’t understand is that why I > > didn’t get these exceptions in 1.4? Is there a way to turn off page > > serialization? > > > > Thanks, > > Zhubin > > > > -- > > View this message in context: > > > http://apache-wicket.1842946.n4.nabble.com/NotSerializableException-in-Wicket-1-5-tp3324650p3324650.html > > Sent from the Users forum mailing list archive at Nabble.com. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > -- Pedro Henrique Oliveira dos Santos
