[jboss-user] [EJB/JBoss] - Could not passivate; failed to save state

ricardomarques do-not-reply at jboss.com
Thu Jun 21 13:08:31 EDT 2007


Hi guys

I'm using ejb with a web application on jboss 4.0.5 with jdk 1.5 and i'm getting this exception:


  | 11:53:50,390 WARN  [AbstractInstanceCache] failed to passivate, id=f373o8gy-s
  | javax.ejb.EJBException: Could not passivate; failed to save state
  |         at org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:423)
  |         at org.jboss.ejb.plugins.StatefulSessionInstanceCache.passivate(StatefulSessionInstanceCache.java:107)
  |         at org.jboss.ejb.plugins.AbstractInstanceCache.tryToPassivate(AbstractInstanceCache.java:209)
  |         at org.jboss.ejb.plugins.AbstractInstanceCache.tryToPassivate(AbstractInstanceCache.java:162)
  |         at org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy$OveragerTask.run(LRUEnterpriseContextCachePolicy.java:450)
  |         at java.util.TimerThread.mainLoop(Timer.java:512)
  |         at java.util.TimerThread.run(Timer.java:462)
  | Caused by: java.io.NotSerializableException: java.lang.ThreadLocal
  |         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
  |         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
  |         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
  |         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
  |         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
  |         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
  |         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
  |         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
  |         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
  |         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
  |         at org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:414)
  |         ... 6 more
  |  



My code (Session bean statefull):


  | protected transient Log log;
  | private transient IdentitySession identitySession;
  |  
  | public void ejbPassivate() throws EJBException, RemoteException {
  |         log.debug("bean passivating... ");
  |         log = null;
  |         identitySession.close();
  |         identitySession = null;
  |     }
  | 



the attributes are transient because i had read somewhere that like that i could avoid serialization problems. but they remain, i've tried with and without them and the output is the same.

IdentitySession is a non-serializable object and Log is a interface from commons logging also non-serializable.

can anyone help?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4056598#4056598

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4056598



More information about the jboss-user mailing list