[jboss-cvs] JBossAS SVN: r76074 - projects/ejb3/trunk/pool/src/main/java/org/jboss/ejb3/pool/strictmax.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 21 18:40:30 EDT 2008


Author: ALRubinger
Date: 2008-07-21 18:40:30 -0400 (Mon, 21 Jul 2008)
New Revision: 76074

Modified:
   projects/ejb3/trunk/pool/src/main/java/org/jboss/ejb3/pool/strictmax/StrictMaxPool.java
Log:
Concurrency bug, synchronized access to pool on lifecycle stop, document the guard lock required

Modified: projects/ejb3/trunk/pool/src/main/java/org/jboss/ejb3/pool/strictmax/StrictMaxPool.java
===================================================================
--- projects/ejb3/trunk/pool/src/main/java/org/jboss/ejb3/pool/strictmax/StrictMaxPool.java	2008-07-21 21:31:37 UTC (rev 76073)
+++ projects/ejb3/trunk/pool/src/main/java/org/jboss/ejb3/pool/strictmax/StrictMaxPool.java	2008-07-21 22:40:30 UTC (rev 76074)
@@ -33,7 +33,7 @@
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class StrictMaxPool<T> implements Pool<T>
 {
@@ -42,6 +42,7 @@
    private int maxSize;
    private long timeout;
    private TimeUnit timeUnit;
+   // Guarded by the implicit lock for "pool"
    private LinkedList<T> pool = new LinkedList<T>();
    
    public StrictMaxPool(StatelessObjectFactory<T> factory, int maxSize, long timeout, TimeUnit timeUnit)
@@ -111,7 +112,10 @@
       {
          factory.destroy(obj);
       }
-      pool.clear();
+      synchronized (pool)
+      {
+         pool.clear();
+      }
    }
 
 }




More information about the jboss-cvs-commits mailing list