« | Main | »

A Roller user just reported a problem, here is the stack trace:

2002-04-26 10:36:16 StandardManager[/roller] Cannot serialize session attribute
session.roller for session 12E495204943E50434A5E3420231A166
java.io.NotSerializableException: org.exolab.castor.jdo.engine.DatabaseImpl
        at java.io.ObjectOutputStream.outputObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at java.io.ObjectOutputStream.outputClassFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) 
        ...

The error that he got is due to the Persistent Session features of Tomcat. I think it is possible to turn off Persistent Sessions in the server.xml file, but I have not really tried this route - they are on by default and Roller should be able to live with them.

As a work around you can stop Roller, then delete the serialized session file. This file can be found in <tomcat>/work/localhost/roller/sessions.ser and it is safe to delete.  Then restart Tomcat and Roller should work fine.

I tried to avoid this problem by removing the RollerImpl object from the session in my session listener (see org.roller.presentation.RollerSession). But something must be wrong with my listener.  I will look into this before my next release.


Another fix/work-around might be to change the data member mJDO in org.roller.business.castor.RollerImpl to be transient.

Change this:

   private JDO mJDO = null;
to this:
   private transient JDO mJDO = null;


If you try that, please let me know if it stops the error you were getting.

P.S. This should be fixed in Roller 0.9.1

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

« | Main | »

Welcome

This is just one entry in the weblog Blogging Roller. You may want to visit the main page of the weblog

Related entries

Below are the most recent entries in the category Roller, some may be related to this entry.