[jboss-cvs] JBossAS SVN: r64195 - tags/EJB3_RC9_Patch_1_EJBTHREE-1017/ejb3/src/main/org/jboss/ejb3/cache/tree.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 23 06:40:52 EDT 2007


Author: galder.zamarreno at jboss.com
Date: 2007-07-23 06:40:52 -0400 (Mon, 23 Jul 2007)
New Revision: 64195

Modified:
   tags/EJB3_RC9_Patch_1_EJBTHREE-1017/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
Log:
[EJBTHREE-1017] ported fix for EJBTHREE-863

Modified: tags/EJB3_RC9_Patch_1_EJBTHREE-1017/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
===================================================================
--- tags/EJB3_RC9_Patch_1_EJBTHREE-1017/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2007-07-23 09:39:59 UTC (rev 64194)
+++ tags/EJB3_RC9_Patch_1_EJBTHREE-1017/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2007-07-23 10:40:52 UTC (rev 64195)
@@ -36,6 +36,7 @@
 import org.jboss.cache.TreeCache;
 import org.jboss.cache.TreeCacheMBean;
 import org.jboss.ejb3.Container;
+import org.jboss.ejb3.EJBContainer;
 import org.jboss.ejb3.Pool;
 import org.jboss.ejb3.cache.ClusteredStatefulCache;
 import org.jboss.ejb3.stateful.StatefulBeanContext;
@@ -280,17 +281,26 @@
          if(fqn.size() != FQN_SIZE) return;
          if(!fqn.isChildOrEquals(cacheNode)) return;  // don't care about fqn that doesn't belong to me.
 
+         ClassLoader oldCl = Thread.currentThread().getContextClassLoader();     
          try {
             // TODO Can this cause deadlock in the cache level? Should be ok but need review.
             Node node = cache.get(fqn);
             StatefulBeanContext bean = (StatefulBeanContext) node.getData().get("bean");
             if (bean != null)
+            {
+               Thread.currentThread().setContextClassLoader(((EJBContainer) bean.getContainer()).getClassloader());
                bean.prePassivate();
+            }
+               
 
          } catch (CacheException e) {
             log.error("nodePassivate(): can't retrieve bean instance from: " +fqn + " with exception: " +e);
             return;
          }
+         finally
+         {
+            Thread.currentThread().setContextClassLoader(oldCl);
+         }
 
 //         log.debug("nodePassivate(): send prePassivate event on fqn: " +fqn);
          if(log.isTraceEnabled())




More information about the jboss-cvs-commits mailing list