Details
-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
JBossAS-3.2.6 Final
-
None
-
None
Description
SourceForge Submitter: mmalynn .
JBoss build: 3.2.0 (build: CVSTag=JBoss_3_2_0
date=200304110033)
Java version: 1.3.1_05,Sun Microsystems Inc.
Java VM: Java HotSpot(TM) Client VM 1.3.1_05-b02,
Sun Microsystems Inc.
OS-System: Windows 2000 5.0,x86
The problem occurs when the container attemps to
passivate a stateful session bean instance that is currently
part of a bean-managed transaction.
The console displays the following warning:
16:02:11,906 WARN [AbstractInstanceCache] Unable to
passivate due to ctx lock, id=dffworvn-g
See server.log in attached zip file.
Any method call to the bean after after this point results in
an NoSuchObjectException. See stack trace in server.log
file.
Note that the ejbRemove() method is never called, it is as if
the bean instance just vanishes.
Looking at the source code it seems that
AbstractInstanceCache.tryToPassivate() correctly
determines that it can't passivate the bean due to the active
transaction. The problem occurs because
AbstractInstanceCache.release() removes the bean from
the cache and then calls tryToPassivate() which silently fails
and the bean is lost forever.
To reproduce, follow README instructions in attached zip
file.