You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ec...@apache.org on 2014/09/28 13:22:06 UTC

svn commit: r1628064 - in /commons/proper/pool/trunk/src: main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java

Author: ecki
Date: Sun Sep 28 11:22:05 2014
New Revision: 1628064

URL: http://svn.apache.org/r1628064
Log:
Fix loop condition for POOL-277 (will fail under concurrency), some more tests, whitespace fix

Modified:
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java?rev=1628064&r1=1628063&r2=1628064&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java Sun Sep 28 11:22:05 2014
@@ -882,7 +882,7 @@ public abstract class BaseGenericObjectP
             if (currentMax >= waitTime) {
                 break;
             }
-        } while (maxBorrowWaitTimeMillis.compareAndSet(currentMax, waitTime));
+        } while (!maxBorrowWaitTimeMillis.compareAndSet(currentMax, waitTime));
     }
 
     /**

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java?rev=1628064&r1=1628063&r2=1628064&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java Sun Sep 28 11:22:05 2014
@@ -46,13 +46,26 @@ public class TestBaseGenericObjectPool {
     
     @Test
     public void testBorrowWaitStatistics() {
-    	DefaultPooledObject<String> p = (DefaultPooledObject<String>) factory.makeObject();
-    	pool.updateStatsBorrow(p, 10);
-    	pool.updateStatsBorrow(p, 20);
-    	pool.updateStatsBorrow(p, 20);
-    	pool.updateStatsBorrow(p, 30);
-    	Assert.assertEquals(20, pool.getMeanBorrowWaitTimeMillis(), Double.MIN_VALUE);
-    	Assert.assertEquals(30, pool.getMaxBorrowWaitTimeMillis(), 0);
+        DefaultPooledObject<String> p = (DefaultPooledObject<String>) factory.makeObject();
+        pool.updateStatsBorrow(p, 10);
+        pool.updateStatsBorrow(p, 20);
+        pool.updateStatsBorrow(p, 20);
+        pool.updateStatsBorrow(p, 30);
+        Assert.assertEquals(20, pool.getMeanBorrowWaitTimeMillis(), Double.MIN_VALUE);
+        Assert.assertEquals(30, pool.getMaxBorrowWaitTimeMillis(), 0);
+    }
+
+    public void testBorrowWaitStatisticsMax() {
+        DefaultPooledObject<String> p = (DefaultPooledObject<String>) factory.makeObject();
+        Assert.assertEquals(0, pool.getMaxBorrowWaitTimeMillis(), Double.MIN_VALUE);
+        pool.updateStatsBorrow(p, 0);
+        Assert.assertEquals(0, pool.getMaxBorrowWaitTimeMillis(), Double.MIN_VALUE);
+        pool.updateStatsBorrow(p, 20);
+        Assert.assertEquals(20, pool.getMaxBorrowWaitTimeMillis(), Double.MIN_VALUE);
+        pool.updateStatsBorrow(p, 20);
+        Assert.assertEquals(20, pool.getMaxBorrowWaitTimeMillis(), Double.MIN_VALUE);
+        pool.updateStatsBorrow(p, 10);
+        Assert.assertEquals(20, pool.getMaxBorrowWaitTimeMillis(), Double.MIN_VALUE);
     }
     
     @Test