[jboss-cvs] JBossAS SVN: r82486 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 22 18:18:19 EST 2008


Author: pferraro
Date: 2008-12-22 18:18:19 -0500 (Mon, 22 Dec 2008)
New Revision: 82486

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/BlockContainerShutdownInterceptor.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
Log:
[EJBTHREE-1654] BlockContainerShutdownInterceptor does not immediately reject invocations once EJBContainer stop is requested

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/BlockContainerShutdownInterceptor.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/BlockContainerShutdownInterceptor.java	2008-12-22 20:37:50 UTC (rev 82485)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/BlockContainerShutdownInterceptor.java	2008-12-22 23:18:19 UTC (rev 82486)
@@ -22,6 +22,7 @@
 package org.jboss.ejb3;
 
 import java.io.Serializable;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 
 import org.jboss.aop.DispatcherConnectException;
@@ -55,7 +56,8 @@
       
       Lock lock = container.getInvocationLock();
       
-      if (!lock.tryLock())
+      // We intentionally do not use tryLock() since it does not respect lock fairness
+      if (!lock.tryLock(0, TimeUnit.SECONDS))
       {
          throw new DispatcherConnectException("EJB container is not completely started, or is stopped.");
       }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-12-22 20:37:50 UTC (rev 82485)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2008-12-22 23:18:19 UTC (rev 82486)
@@ -189,7 +189,7 @@
    protected boolean reinitialize = false;
    
    // To support clean startup/shutdown
-   private ReadWriteLock containerLock = new ReentrantReadWriteLock();
+   private ReadWriteLock containerLock = new ReentrantReadWriteLock(true);
    
    private static final Interceptor[] currentInvocationStack = new Interceptor[] { new CurrentInvocationInterceptor() };
    




More information about the jboss-cvs-commits mailing list