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.