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)
  
  
  

Reply via email to