You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sa...@apache.org on 2006/03/06 23:06:18 UTC

svn commit: r383688 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/ test/org/apache/commons/pool/

Author: sandymac
Date: Mon Mar  6 14:06:16 2006
New Revision: 383688

URL: http://svn.apache.org/viewcvs?rev=383688&view=rev
Log:
Updated BaseObjectPools and unit tests to conform to the Pool 2.0 contract changes.
* getNumIdle/getNumActive now return a negative value when unsupported.
* calling close() more than once no longer throws an exception.

Modified:
    jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java
    jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java
    jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java
    jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java
    jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java

Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java?rev=383688&r1=383687&r2=383688&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseKeyedObjectPool.java Mon Mar  6 14:06:16 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,11 +17,12 @@
 package org.apache.commons.pool;
 
 /**
- * A simple base impementation of {@link ObjectPool}.
- * All optional operations are implemented as throwing
- * {@link UnsupportedOperationException}.
+ * A simple base implementation of {@link ObjectPool}.
+ * Optional operations are implemented to either do nothing, return a value
+ * indicating it is unsupported or throw {@link UnsupportedOperationException}.
  *
  * @author Rodney Waldhoff
+ * @author Sandy McArthur
  * @version $Revision$ $Date$
  */
 public abstract class BaseKeyedObjectPool implements KeyedObjectPool {
@@ -31,6 +32,8 @@
 
     /**
      * Not supported in this base implementation.
+     * Always throws an {@link UnsupportedOperationException},
+     * subclasses should override this behavior.
      */
     public void addObject(Object key) throws Exception, UnsupportedOperationException {
         throw new UnsupportedOperationException();
@@ -38,30 +41,34 @@
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumIdle(Object key) throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumActive(Object key) throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumIdle() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumActive() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
@@ -74,8 +81,7 @@
     /**
      * Not supported in this base implementation.
      */
-    public void clear(Object key)
-    throws Exception, UnsupportedOperationException {
+    public void clear(Object key) throws Exception, UnsupportedOperationException {
         throw new UnsupportedOperationException();
     }
 
@@ -88,9 +94,10 @@
 
     /**
      * Not supported in this base implementation.
+     * Always throws an {@link UnsupportedOperationException},
+     * subclasses should override this behavior.
      */
-    public void setFactory(KeyedPoolableObjectFactory factory)
-    throws IllegalStateException, UnsupportedOperationException {
+    public void setFactory(KeyedPoolableObjectFactory factory) throws IllegalStateException, UnsupportedOperationException {
         throw new UnsupportedOperationException();
     }
 

Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java?rev=383688&r1=383687&r2=383688&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/BaseObjectPool.java Mon Mar  6 14:06:16 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,11 +17,12 @@
 package org.apache.commons.pool;
 
 /**
- * A simple base impementation of {@link ObjectPool}.
- * All optional operations are implemented as throwing
- * {@link UnsupportedOperationException}.
+ * A simple base implementation of {@link ObjectPool}.
+ * Optional operations are implemented to either do nothing, return a value
+ * indicating it is unsupported or throw {@link UnsupportedOperationException}.
  *
  * @author Rodney Waldhoff
+ * @author Sandy McArthur
  * @version $Revision$ $Date$
  */
 public abstract class BaseObjectPool implements ObjectPool {
@@ -31,16 +32,18 @@
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumIdle() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
      * Not supported in this base implementation.
+     * @return a negative value.
      */
     public int getNumActive() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
+        return -1;
     }
 
     /**
@@ -52,27 +55,39 @@
 
     /**
      * Not supported in this base implementation.
+     * Always throws an {@link UnsupportedOperationException},
+     * subclasses should override this behavior.
      */
     public void addObject() throws Exception, UnsupportedOperationException {
         throw new UnsupportedOperationException();
     }
 
     public void close() throws Exception {
-        assertOpen();
         closed = true;
     }
 
     /**
      * Not supported in this base implementation.
+     * Always throws an {@link UnsupportedOperationException},
+     * subclasses should override this behavior.
      */
     public void setFactory(PoolableObjectFactory factory) throws IllegalStateException, UnsupportedOperationException {
         throw new UnsupportedOperationException();
     }
-    
+
+    /**
+     * Has this pool instance been closed.
+     * @return <code>true</code> when this pool has been closed.
+     */
     protected final boolean isClosed() {
         return closed;
     }
-    
+
+    /**
+     * Throws an <code>IllegalStateException</code> when this pool has been closed.
+     * @throws IllegalStateException when this pool has been closed.
+     * @see #isClosed()
+     */
     protected final void assertOpen() throws IllegalStateException {
         if(isClosed()) {
             throw new IllegalStateException("Pool not open");

Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java?rev=383688&r1=383687&r2=383688&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseKeyedObjectPool.java Mon Mar  6 14:06:16 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 
 /**
  * @author Rodney Waldhoff
+ * @author Sandy McArthur
  * @version $Revision$ $Date$
  */
 public class TestBaseKeyedObjectPool extends TestCase {
@@ -51,36 +52,13 @@
             // expected
         }
 
-        try {
-            pool.getNumIdle();
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
-
-        try {
-            pool.getNumActive();
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
+        assertTrue("Negative expected.", pool.getNumIdle() < 0);
+        assertTrue("Negative expected.", pool.getNumIdle("key") < 0);
+        assertTrue("Negative expected.", pool.getNumActive() < 0);
+        assertTrue("Negative expected.", pool.getNumActive("key") < 0);
 
         try {
             pool.clear();
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
-
-        try {
-            pool.getNumIdle("key");
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
-
-        try {
-            pool.getNumActive("key");
             fail("Expected UnsupportedOperationException");
         } catch(UnsupportedOperationException e) {
             // expected

Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java?rev=383688&r1=383687&r2=383688&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestBaseObjectPool.java Mon Mar  6 14:06:16 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 
 /**
  * @author Rodney Waldhoff
+ * @author Sandy McArthur
  * @version $Revision$ $Date$ 
  */
 public class TestBaseObjectPool extends TestCase {
@@ -43,20 +44,9 @@
             public void invalidateObject(Object obj) throws Exception {                
             }            
         };   
-        
-        try {
-            pool.getNumIdle();
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
 
-        try {
-            pool.getNumActive();
-            fail("Expected UnsupportedOperationException");
-        } catch(UnsupportedOperationException e) {
-            // expected
-        }
+        assertTrue("Negative expected.", pool.getNumIdle() < 0);
+        assertTrue("Negative expected.", pool.getNumActive() < 0);
 
         try {
             pool.clear();
@@ -78,5 +68,20 @@
         } catch(UnsupportedOperationException e) {
             // expected
         }
+    }
+
+    public void testClose() throws Exception {
+        ObjectPool pool = new BaseObjectPool() {
+            public Object borrowObject() throws Exception {
+                return null;
+            }
+            public void returnObject(Object obj) throws Exception {
+            }
+            public void invalidateObject(Object obj) throws Exception {
+            }
+        };
+
+        pool.close();
+        pool.close(); // should not error as of Pool 2.0.
     }
 }

Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java?rev=383688&r1=383687&r2=383688&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestObjectPool.java Mon Mar  6 14:06:16 2006
@@ -216,23 +216,5 @@
         }
     }
 
-    public void testBaseCantCloseTwice() throws Exception {
-        try {
-            _pool = makeEmptyPool(3);
-        } catch(IllegalArgumentException e) {
-            return; // skip this test if unsupported
-        }
-        Object obj = _pool.borrowObject();
-        _pool.returnObject(obj);
-        
-        _pool.close();
-        try {
-            _pool.close();
-            fail("Expected IllegalStateException");
-        } catch(IllegalStateException e) {
-            // expected
-        }
-    }
-
     private ObjectPool _pool = null;
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: svn commit: r383688 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/ test/org/apache/commons/pool/

Posted by Rahul Akolkar <ra...@gmail.com>.
On 3/6/06, Sandy McArthur <sa...@gmail.com> wrote:
> On 3/6/06, Rahul Akolkar <ra...@gmail.com> wrote:
> > On 3/6/06, sandymac@apache.org <sa...@apache.org> wrote:
> > > Author: sandymac
> > > Date: Mon Mar  6 14:06:16 2006
> > > New Revision: 383688
> > >
> > > URL: http://svn.apache.org/viewcvs?rev=383688&view=rev
> > > Log:
> > > Updated BaseObjectPools and unit tests to conform to the Pool 2.0 contract changes.
> > > * getNumIdle/getNumActive now return a negative value when unsupported.
> > > * calling close() more than once no longer throws an exception.
> > >
> > <snip/>
> >
> > Get the feeling this needs to be in its own branch towards a 2.0.
>
> I thought the trunk was for Pool 2.0 and there was a branch for Pool 1.3
>
> http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/
> http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/pool/trunk/
>
<snip/>

Makes perfect sense then, I should've checked what branches exist.

-Rahul


> --
> Sandy McArthur
>
> "He who dares not offend cannot be honest."
> - Thomas Paine
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: svn commit: r383688 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/ test/org/apache/commons/pool/

Posted by Sandy McArthur <sa...@gmail.com>.
On 3/6/06, Rahul Akolkar <ra...@gmail.com> wrote:
> On 3/6/06, sandymac@apache.org <sa...@apache.org> wrote:
> > Author: sandymac
> > Date: Mon Mar  6 14:06:16 2006
> > New Revision: 383688
> >
> > URL: http://svn.apache.org/viewcvs?rev=383688&view=rev
> > Log:
> > Updated BaseObjectPools and unit tests to conform to the Pool 2.0 contract changes.
> > * getNumIdle/getNumActive now return a negative value when unsupported.
> > * calling close() more than once no longer throws an exception.
> >
> <snip/>
>
> Get the feeling this needs to be in its own branch towards a 2.0.

I thought the trunk was for Pool 2.0 and there was a branch for Pool 1.3

http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/pool/branches/1_3_RELEASE_BRANCH/
http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/pool/trunk/

--
Sandy McArthur

"He who dares not offend cannot be honest."
- Thomas Paine

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: svn commit: r383688 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/ test/org/apache/commons/pool/

Posted by Rahul Akolkar <ra...@gmail.com>.
On 3/6/06, sandymac@apache.org <sa...@apache.org> wrote:
> Author: sandymac
> Date: Mon Mar  6 14:06:16 2006
> New Revision: 383688
>
> URL: http://svn.apache.org/viewcvs?rev=383688&view=rev
> Log:
> Updated BaseObjectPools and unit tests to conform to the Pool 2.0 contract changes.
> * getNumIdle/getNumActive now return a negative value when unsupported.
> * calling close() more than once no longer throws an exception.
>
<snip/>

Get the feeling this needs to be in its own branch towards a 2.0.

-Rahul

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org