[ http://issues.apache.org/jira/browse/IBATIS-60?page=comments#action_57876 ] Clinton Begin commented on IBATIS-60: -------------------------------------
PaginatedDataList is a simple tool to solve simple problems. JPetStore is one of those simple problems. There is no functional value in serializing your session, unless your clustering your server. If you're clustering your server, you are no longer working with a simple problem. Not only should you not be worried about the transient nature of PaginatedDataList, you should not be using it at all. A more scalable design would be to simply store the current page and the page size in the session (2 integers). In a highly available, high performance enterprise system, you don't want a list of objects hanging around in your session for every user. Either way you cut it, at the very least, this is not a bug. It is a feature request. Would you like me to reopen it and move it to new features? Cheers, Clinton > PaginatedDataList not Serializable > ---------------------------------- > > Key: IBATIS-60 > URL: http://issues.apache.org/jira/browse/IBATIS-60 > Project: iBatis for Java > Type: Bug > Components: SQL Maps > Versions: 2.0.8 > Reporter: Ate Douma > > INFO: Installing web application at context path /jpetstore from URL > file:D:\tomcat5\webapps\jpetstore > ERROR [main] - IOException while loading persisted sessions: > java.io.WriteAbortedException: writing aborted; java.io.Not > SerializableException: > com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList > java.io.WriteAbortedException: writing aborted; > java.io.NotSerializableException: com.ibatis.sqlmap.engine.mapping.state > ment.PaginatedDataList > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1278) > at > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) > at > org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1342) > at > org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:885) > at > org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:416) > at > org.apache.catalina.session.StandardManager.load(StandardManager.java:343) > at > org.apache.catalina.session.StandardManager.start(StandardManager.java:657) > at > org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499) > at > org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:315) > at > org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635) > at > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4290) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) > at > org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277) > at > org.apache.catalina.core.StandardHost.install(StandardHost.java:832) > at > org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701) > at > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432) > at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) > at > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) > at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) > at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) > at > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) > at > org.apache.catalina.core.StandardService.start(StandardService.java:480) > at > org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) > at org.apache.catalina.startup.Catalina.start(Catalina.java:556) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) > at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) > Caused by: java.io.NotSerializableException: > com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247) > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) > at > org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1415) > at > org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:902) > at > org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:539) > at > org.apache.catalina.session.StandardManager.unload(StandardManager.java:485) > at > org.apache.catalina.session.StandardManager.stop(StandardManager.java:687) > at > org.apache.catalina.core.StandardContext.stop(StandardContext.java:4496) > at > org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:952) > at > org.apache.catalina.core.StandardHostDeployer.remove(StandardHostDeployer.java:670) > at org.apache.catalina.core.StandardHost.remove(StandardHost.java:946) > at > org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1028) > at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1005) > at > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:351) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at > org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1123) > at > org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1135) > at > org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:483) > at > org.apache.catalina.core.StandardService.stop(StandardService.java:542) > at > org.apache.catalina.core.StandardServer.stop(StandardServer.java:2347) > at org.apache.catalina.startup.Catalina.stop(Catalina.java:605) > at > org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:648) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira