You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2009/05/30 17:28:33 UTC

svn commit: r780284 - /commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java

Author: sebb
Date: Sat May 30 15:28:32 2009
New Revision: 780284

URL: http://svn.apache.org/viewvc?rev=780284&view=rev
Log:
TestThread booleans need to be volatile to work reliably across threads
Thread.sleep() only generates InterruptedException

Modified:
    commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java

Modified: commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java?rev=780284&r1=780283&r2=780284&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java Sat May 30 15:28:32 2009
@@ -395,17 +395,17 @@
             pool.returnObject("",active[i]);
         }
 
-        try { Thread.sleep(1000L); } catch(Exception e) { }
+        try { Thread.sleep(1000L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 500 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 500);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 400 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 400);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 300 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 300);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 200 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 200);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 100 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 100);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertEquals("Should be zero idle, found " + pool.getNumIdle(""),0,pool.getNumIdle(""));
 
         for(int i=0;i<500;i++) {
@@ -415,17 +415,17 @@
             pool.returnObject("",active[i]);
         }
 
-        try { Thread.sleep(1000L); } catch(Exception e) { }
+        try { Thread.sleep(1000L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 500 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 500);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 400 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 400);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 300 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 300);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 200 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 200);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 100 idle, found " + pool.getNumIdle(""),pool.getNumIdle("") < 100);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertEquals("Should be zero idle, found " + pool.getNumIdle(""),0,pool.getNumIdle(""));
     }
 
@@ -447,27 +447,27 @@
             pool.returnObject("2",active2[i]);
         }
 
-        try { Thread.sleep(1000L); } catch(Exception e) { }
+        try { Thread.sleep(1000L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 1000 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 1000);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 900 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 900);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 800 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 800);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 700 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 700);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 600 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 600);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 500 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 500);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 400 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 400);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 300 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 300);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 200 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 200);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertTrue("Should be less than 100 idle, found " + pool.getNumIdle(),pool.getNumIdle() < 100);
-        try { Thread.sleep(600L); } catch(Exception e) { }
+        try { Thread.sleep(600L); } catch(InterruptedException e) { }
         assertEquals("Should be zero idle, found " + pool.getNumIdle(),0,pool.getNumIdle());
     }
 
@@ -487,7 +487,7 @@
             while(!(threads[i]).complete()) {
                 try {
                     Thread.sleep(500L);
-                } catch(Exception e) {
+                } catch(InterruptedException e) {
                     // ignored
                 }
             }
@@ -539,27 +539,27 @@
 
         pool.preparePool(key, true);
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         Object[] active = new Object[5];
         active[0] = pool.borrowObject(key);
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         for(int i=1 ; i<5 ; i++) {
             active[i] = pool.borrowObject(key);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         for(int i=0 ; i<5 ; i++) {
             pool.returnObject(key, active[i]);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 10 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 10);
     }
 
@@ -578,40 +578,40 @@
         assertTrue("Should be 5 idle, found " + 
                 pool.getNumIdle(),pool.getNumIdle() == 5);
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         Object[] active = new Object[10];
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         for(int i=0 ; i<5 ; i++) {
             active[i] = pool.borrowObject(key);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
 
         for(int i=0 ; i<5 ; i++) {
             pool.returnObject(key, active[i]);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 10 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 10);
 
         for(int i=0 ; i<10 ; i++) {
             active[i] = pool.borrowObject(key);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 0 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 0);
 
         for(int i=0 ; i<10 ; i++) {
             pool.returnObject(key, active[i]);
         }
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 10 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 10);
     }
 
@@ -632,7 +632,7 @@
 
         assertTrue("Should be 0 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 0);
 
-        try { Thread.sleep(1500L); } catch(Exception e) { }
+        try { Thread.sleep(1500L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
     }
 
@@ -649,13 +649,13 @@
         //Generate a random key
         String key = "A";
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 0 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 0);
 
         Object active = pool.borrowObject(key);
         assertNotNull(active);
 
-        try { Thread.sleep(150L); } catch(Exception e) { }
+        try { Thread.sleep(150L); } catch(InterruptedException e) { }
         assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
     }
 
@@ -1294,13 +1294,13 @@
         assertEquals(0, pool.getNumIdle());
     }
 
-    class TestThread implements Runnable {
-        java.util.Random _random = new java.util.Random();
-        KeyedObjectPool _pool = null;
-        boolean _complete = false;
-        boolean _failed = false;
-        int _iter = 100;
-        int _delay = 50;
+    static class TestThread implements Runnable {
+        private final java.util.Random _random = new java.util.Random();
+        private KeyedObjectPool _pool = null;
+        private volatile boolean _complete = false;
+        private volatile boolean _failed = false;
+        private int _iter = 100;
+        private int _delay = 50;
 
         public TestThread(KeyedObjectPool pool) {
             _pool = pool;
@@ -1330,7 +1330,7 @@
                 String key = String.valueOf(_random.nextInt(3));
                 try {
                     Thread.sleep(_random.nextInt(_delay));
-                } catch(Exception e) {
+                } catch(InterruptedException e) {
                     // ignored
                 }
                 Object obj = null;
@@ -1345,7 +1345,7 @@
 
                 try {
                     Thread.sleep(_random.nextInt(_delay));
-                } catch(Exception e) {
+                } catch(InterruptedException e) {
                     // ignored
                 }
                 try {