You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Don Ferguson (JIRA)" <ji...@apache.org> on 2010/01/24 02:15:17 UTC
[jira] Commented: (WICKET-2697)
org.apache.wicket.util.listener.ChangeListenerSet should be serializable
[ https://issues.apache.org/jira/browse/WICKET-2697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804182#action_12804182 ]
Don Ferguson commented on WICKET-2697:
--------------------------------------
FWIW, this problem didn't become apparent until I turned on Jetty's HashSessionManager to persist sessions to disk. I'm now wondering if this had been silently failing in production, and causing users to prematurely lose their sessions. Anyway, I changed the code to use an ArrayList, and the serialization problem is fixed.
If this isn't meant to be stored in a session (or, by extension, as a member variable on a stateful page or component), it should probably be documented as such.
> org.apache.wicket.util.listener.ChangeListenerSet should be serializable
> ------------------------------------------------------------------------
>
> Key: WICKET-2697
> URL: https://issues.apache.org/jira/browse/WICKET-2697
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4.5
> Environment: jetty/mac
> Reporter: Don Ferguson
> Assignee: Igor Vaynberg
>
> I have an instance of org.apache.wicket.util.listener.ChangeListenerSet in my session. During session serialization, I get exceptions like:
> 2010-01-23 14:08:09.227::WARN: Problem restoring session bf7hquqgf9ui
> java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.wicket.util.listener.ChangeListenerSet
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1910)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1834)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> at org.mortbay.jetty.servlet.HashSessionManager.restoreSession(HashSessionManager.java:494)
> at org.mortbay.jetty.servlet.HashSessionManager.restoreSessions(HashSessionManager.java:400)
> at org.mortbay.jetty.servlet.HashSessionManager.doStart(HashSessionManager.java:81)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.servlet.SessionHandler.doStart(SessionHandler.java:116)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:537)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
> at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.deployer.ContextDeployer.deploy(ContextDeployer.java:268)
> at org.mortbay.jetty.deployer.ContextDeployer.redeploy(ContextDeployer.java:287)
> at org.mortbay.jetty.deployer.ContextDeployer.access$100(ContextDeployer.java:67)
> at org.mortbay.jetty.deployer.ContextDeployer$ScannerListener.fileChanged(ContextDeployer.java:99)
> at org.mortbay.util.Scanner.reportChange(Scanner.java:464)
> at org.mortbay.util.Scanner.reportDifferences(Scanner.java:330)
> at org.mortbay.util.Scanner.scan(Scanner.java:280)
> at org.mortbay.util.Scanner$1.run(Scanner.java:232)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.