StatefulTreeCache should abort passivation if bean tree is in use
-----------------------------------------------------------------
Key: EJBTHREE-882
URL:
http://jira.jboss.com/jira/browse/EJBTHREE-882
Project: EJB 3.0
Issue Type: Task
Components: Clustering
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: EJB 3.0 RC10 - FD
Passivation of the parent context that holds nested beans should not occur if any of the
beans are in use. The potential that child beans are in use while the parent is not
increases the possibility that the passivation thread will attempt to passivate an in-use
context.
To deal with this, StatefulTreeCache will listen for prePassivate events and check whether
any bean in the context's tree is in use. If it is, a custom RuntimeException will be
thrown in order to abort the passivation.
The cache will use a special LRUPolicy subclass that will recognize the custom exception
and not log an error for it, just retrying the passivation on the next run of the eviction
thread. (The standard LRUPolicy will retry, but will log an ERROR if an exception is
caught. We don't want any error logged, as this is not an unexpected situation.)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira