dirkv       2004/07/04 10:31:23

  Modified:    pool/src/test/org/apache/commons/pool/impl
                        TestGenericKeyedObjectPool.java
  Log:
  Bugzilla Bug 27493: GenericKeyedObjectPool: maxTotal limit enhancement
  - apply patch from Todd Carmichael with minor modifications
  
  Revision  Changes    Path
  1.19      +49 -1     
jakarta-commons/pool/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
  
  Index: TestGenericKeyedObjectPool.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/pool/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- TestGenericKeyedObjectPool.java   28 Feb 2004 11:46:11 -0000      1.18
  +++ TestGenericKeyedObjectPool.java   4 Jul 2004 17:31:23 -0000       1.19
  @@ -221,6 +221,54 @@
           assertEquals(0, pool.getNumIdle("b"));
       }
   
  +    public void testMaxTotalLRU() throws Exception {
  +        pool.setMaxActive(2);
  +        pool.setMaxTotal(3);
  +//        pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_GROW);
  +
  +        Object o1 = pool.borrowObject("a");
  +        assertNotNull(o1);
  +        pool.returnObject("a", o1);
  +        Thread.sleep(10);
  +
  +        Object o2 = pool.borrowObject("b");
  +        assertNotNull(o2);
  +        pool.returnObject("b", o2);
  +        Thread.sleep(10);
  +
  +        Object o3 = pool.borrowObject("c");
  +        assertNotNull(o3);
  +        pool.returnObject("c", o3);
  +        Thread.sleep(10);
  +
  +        Object o4 = pool.borrowObject("a");
  +        assertNotNull(o4);
  +        pool.returnObject("a", o4);
  +        Thread.sleep(10);
  +
  +        assertSame(o1, o4);
  +
  +        // this should cause b to be bumped out of the pool
  +        Object o5 = pool.borrowObject("d");
  +        assertNotNull(o5);
  +        pool.returnObject("d", o5);
  +        Thread.sleep(10);
  +
  +        // now re-request b, we should get a different object because it should
  +        // have been expelled from pool (was oldest because a was requested after b)
  +        Object o6 = pool.borrowObject("b");
  +        assertNotNull(o6);
  +        pool.returnObject("b", o6);
  +
  +        assertNotSame(o1, o6);
  +
  +        // second a is still in there
  +        Object o7 = pool.borrowObject("a");
  +        assertNotNull(o7);
  +        pool.returnObject("a", o7);
  +
  +        assertSame(o4, o7);
  +    }
   
       public void testSettersAndGetters() throws Exception {
           GenericKeyedObjectPool pool = new GenericKeyedObjectPool();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to