Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 89294 invoked from network); 29 Oct 2005 10:43:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 29 Oct 2005 10:43:37 -0000 Received: (qmail 84413 invoked by uid 500); 29 Oct 2005 10:43:34 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 84390 invoked by uid 500); 29 Oct 2005 10:43:34 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 84379 invoked by uid 500); 29 Oct 2005 10:43:34 -0000 Received: (qmail 84376 invoked by uid 99); 29 Oct 2005 10:43:34 -0000 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Sat, 29 Oct 2005 03:43:34 -0700 Received: (qmail 89197 invoked by uid 65534); 29 Oct 2005 10:43:13 -0000 Message-ID: <20051029104313.89196.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r329395 - in /jakarta/commons/proper/pool/trunk/src: java/org/apache/commons/pool/impl/ test/org/apache/commons/pool/ test/org/apache/commons/pool/impl/ Date: Sat, 29 Oct 2005 10:43:12 -0000 To: commons-cvs@jakarta.apache.org From: rdonkin@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: rdonkin Date: Sat Oct 29 03:43:01 2005 New Revision: 329395 URL: http://svn.apache.org/viewcvs?rev=329395&view=rev Log: Made GenericObjectKeyedPool a FIFO as per documentation. Submitted by Sandy McArthur. Issue#36904. Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?rev=329395&r1=329394&r2=329395&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Sat Oct 29 03:43:01 2005 @@ -981,7 +981,7 @@ if(_maxIdle >= 0 && (pool.size() >= _maxIdle)) { shouldDestroy = true; } else if(success) { - pool.addFirst(new ObjectTimestampPair(obj)); + pool.addLast(new ObjectTimestampPair(obj)); _totalIdle++; } notifyAll(); Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java?rev=329395&r1=329394&r2=329395&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/TestKeyedObjectPool.java Sat Oct 29 03:43:01 2005 @@ -44,6 +44,18 @@ protected abstract Object getNthObject(Object key, int n); protected abstract Object makeKey(int n); + + /** + * Is the implementations LIFO? + * @return + */ + protected abstract boolean isLifo(); + + /** + * Is the implementationn FIFO? + * @return + */ + protected abstract boolean isFifo(); public void setUp() throws Exception { } @@ -90,9 +102,19 @@ _pool.returnObject(keya,obj0); _pool.returnObject(keya,obj2); obj2 = _pool.borrowObject(keya); - assertEquals(getNthObject(keya,2),obj2); + if (isLifo()) { + assertEquals(getNthObject(keya,2),obj2); + } + if (isFifo()) { + assertEquals(getNthObject(keya,0),obj2); + } obj0 = _pool.borrowObject(keya); - assertEquals(getNthObject(keya,0),obj0); + if (isLifo()) { + assertEquals(getNthObject(keya,0),obj0); + } + if (isFifo()) { + assertEquals(getNthObject(keya,2),obj0); + } } public void testBaseNumActiveNumIdle() throws Exception { Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java?rev=329395&r1=329394&r2=329395&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java Sat Oct 29 03:43:01 2005 @@ -591,6 +591,20 @@ assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5); } + public void testFIFO() throws Exception { + final Object key = "key"; + pool.addObject(key); // "key0" + pool.addObject(key); // "key1" + pool.addObject(key); // "key2" + assertEquals("Oldest", "key0", pool.borrowObject(key)); + assertEquals("Middle", "key1", pool.borrowObject(key)); + assertEquals("Youngest", "key2", pool.borrowObject(key)); + assertEquals("new-3", "key3", pool.borrowObject(key)); + pool.returnObject(key, "r"); + assertEquals("returned", "r", pool.borrowObject(key)); + assertEquals("new-4", "key4", pool.borrowObject(key)); + } + class TestThread implements Runnable { java.util.Random _random = new java.util.Random(); KeyedObjectPool _pool = null; @@ -670,6 +684,14 @@ public void passivateObject(Object key, Object obj) { } int counter = 0; boolean valid; + } + + protected boolean isLifo() { + return false; + } + + protected boolean isFifo() { + return true; } } Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java?rev=329395&r1=329394&r2=329395&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackKeyedObjectPool.java Sat Oct 29 03:43:01 2005 @@ -280,4 +280,12 @@ public void activateObject(Object key, Object obj) { } public void passivateObject(Object key, Object obj) { } } + + protected boolean isLifo() { + return true; + } + + protected boolean isFifo() { + return false; + } } Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java?rev=329395&r1=329394&r2=329395&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestStackObjectPool.java Sat Oct 29 03:43:01 2005 @@ -395,7 +395,7 @@ } protected boolean isLifo() { - return false; + return true; } protected boolean isFifo() { --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org