User: salborini
Date: 00/11/09 11:49:57
Modified: src/main/org/jboss/ejb/plugins
StatefulSessionFilePersistenceManager.java
Log:
Skip the sessioncontext when passivating a stateful session bean.
We can't read the value (IllegalAccessException), and it will be restored
by the sessionInputStream during activation anyway.
Revision Changes Path
1.13 +10 -3
jboss/src/main/org/jboss/ejb/plugins/StatefulSessionFilePersistenceManager.java
Index: StatefulSessionFilePersistenceManager.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/StatefulSessionFilePersistenceManager.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- StatefulSessionFilePersistenceManager.java 2000/10/27 13:38:04 1.12
+++ StatefulSessionFilePersistenceManager.java 2000/11/09 19:49:56 1.13
@@ -37,6 +37,7 @@
import javax.ejb.EJBObject;
import javax.ejb.Handle;
import javax.ejb.SessionBean;
+import javax.ejb.SessionContext;
import javax.ejb.CreateException;
import javax.ejb.DuplicateKeyException;
import javax.ejb.FinderException;
@@ -61,7 +62,7 @@
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
* @author <a href="[EMAIL PROTECTED]">Marc Fleury</a>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
*/
public class StatefulSessionFilePersistenceManager
implements StatefulSessionPersistenceManager
@@ -265,8 +266,14 @@
// Store state
ObjectOutputStream out = new SessionObjectOutputStream(new
FileOutputStream(new File(dir, ctx.getId()+".ser")));
- for (int i = 0; i < fields.size(); i++)
- out.writeObject(((Field)fields.get(i)).get(ctx.getInstance()));
+ for (int i = 0; i < fields.size(); i++) {
+
+ // skip the sessionContext, we can't read the value (inner class, no
constructor available)
+ // (it will be restored by the SessionObjectInputStream upon activation)
+ if (!
SessionContext.class.isAssignableFrom(((Field)fields.get(i)).getType()))
+
+ out.writeObject(((Field)fields.get(i)).get(ctx.getInstance()));
+ }
out.close();
} catch (IOException e)