Example usage for org.apache.commons.pool.impl GenericKeyedObjectPool getNumActive

List of usage examples for org.apache.commons.pool.impl GenericKeyedObjectPool getNumActive

Introduction

In this page you can find the example usage for org.apache.commons.pool.impl GenericKeyedObjectPool getNumActive.

Prototype

public synchronized int getNumActive(Object key) 

Source Link

Document

Returns the number of instances currently borrowed from but not yet returned to the pool corresponding to the given key.

Usage

From source file:Pool146.java

public void testBlockedKeyDoesNotBlockPoolImproved() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_BLOCK);
    pool.setMaxActive(1);/*ww w  .j  a v  a2  s  .  c  om*/
    pool.setMaxTotal(-1);

    // Borrow with one key
    Object obj = pool.borrowObject("one");

    // Borrow again with same key, should be blocked
    Runnable simple = new SimpleTestThread(pool, "one");
    Thread borrowThread = new Thread(simple);
    borrowThread.start();

    pool.borrowObject("two");
    assert (pool.getNumActive("one") == 1);
    assert (pool.getNumActive("two") == 1);

    // Unblock and join the thread
    pool.returnObject("one", obj);
    borrowThread.join();
    assert (pool.getNumActive("one") == 0);
    assert (pool.getNumActive("two") == 1);
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

public void testExceptionOnDestroyDuringReturn() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    factory.setThrowExceptionOnDestroy(true);
    factory.setValidationEnabled(true);/*from   w ww  .  java 2 s . co  m*/
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setTestOnReturn(true);
    Object obj1 = pool.borrowObject("one");
    pool.borrowObject("one");
    factory.setValid(false); // Make validation fail
    pool.returnObject("one", obj1);
    assertEquals(1, pool.getNumActive("one"));
    assertEquals(0, pool.getNumIdle("one"));
    assertEquals(1, pool.getNumActive());
    assertEquals(0, pool.getNumIdle());
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

public void testExceptionOnDestroyDuringBorrow() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    factory.setThrowExceptionOnDestroy(true);
    factory.setValidationEnabled(true);/*www.j  av a2s. co m*/
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setTestOnBorrow(true);
    pool.borrowObject("one");
    factory.setValid(false); // Make validation fail on next borrow attempt
    try {
        pool.borrowObject("one");
        fail("Expecting NoSuchElementException");
    } catch (NoSuchElementException ex) {
        // expected
    }
    assertEquals(1, pool.getNumActive("one"));
    assertEquals(0, pool.getNumIdle("one"));
    assertEquals(1, pool.getNumActive());
    assertEquals(0, pool.getNumIdle());
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

public void testExceptionOnActivateDuringBorrow() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    Object obj1 = pool.borrowObject("one");
    Object obj2 = pool.borrowObject("one");
    pool.returnObject("one", obj1);
    pool.returnObject("one", obj2);
    factory.setThrowExceptionOnActivate(true);
    factory.setEvenValid(false);/*from   w  w  w  .j  av  a  2s .  c o m*/
    // Activation will now throw every other time
    // First attempt throws, but loop continues and second succeeds
    Object obj = pool.borrowObject("one");
    assertEquals(1, pool.getNumActive("one"));
    assertEquals(0, pool.getNumIdle("one"));
    assertEquals(1, pool.getNumActive());
    assertEquals(0, pool.getNumIdle());

    pool.returnObject("one", obj);
    factory.setValid(false);
    // Validation will now fail on activation when borrowObject returns
    // an idle instance, and then when attempting to create a new instance
    try {
        pool.borrowObject("one");
        fail("Expecting NoSuchElementException");
    } catch (NoSuchElementException ex) {
        // expected
    }
    assertEquals(0, pool.getNumActive("one"));
    assertEquals(0, pool.getNumIdle("one"));
    assertEquals(0, pool.getNumActive());
    assertEquals(0, pool.getNumIdle());
}

From source file:edu.illinois.enforcemop.examples.apache.pool.TestGenericKeyedObjectPool.java

@Test
// @Schedules({/*from   w  w  w . j av a2s. co m*/
//     @Schedule(name = "BorrowOneBeforeTwo", value = "[beforeBorrow:afterBorrow]@borrowThread -> borrowTwo@main")})
public void testBlockedKeyDoesNotBlockPoolImproved() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK);
    pool.setMaxActive(1);
    pool.setMaxTotal(-1);

    // Borrow with one key
    Object obj = pool.borrowObject("one");

    // Borrow again with same key, should be blocked
    Runnable simple = new SimpleTestThread(pool, "one");
    Thread borrowThread = new Thread(simple, "borrowThread");
    borrowThread.start();

    // Wait for sometime and borrow with another key
    // Should not block
    Thread.sleep(1000);
    pool.borrowObject("two");
    assertEquals(1, pool.getNumActive("one"));
    assertEquals(1, pool.getNumActive("two"));

    // Unblock and join the thread
    pool.returnObject("one", obj);
    borrowThread.join();
    assertEquals(0, pool.getNumActive("one"));
    assertEquals(1, pool.getNumActive("two"));
}

From source file:edu.illinois.imunit.examples.apache.pool.TestGenericKeyedObjectPool.java

@Test
@Schedules({//from  w  w w  .  j a va2  s.c o  m
        @Schedule(name = "BorrowOneBeforeTwo", value = "[beforeBorrow:afterBorrow]@borrowThread -> borrowTwo@main") })
public void testBlockedKeyDoesNotBlockPoolImproved() throws Exception {
    SimpleFactory factory = new SimpleFactory();
    GenericKeyedObjectPool pool = new GenericKeyedObjectPool(factory);
    pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK);
    pool.setMaxActive(1);
    pool.setMaxTotal(-1);

    // Borrow with one key
    Object obj = pool.borrowObject("one");

    // Borrow again with same key, should be blocked
    Runnable simple = new SimpleTestThread(pool, "one");
    Thread borrowThread = new Thread(simple, "borrowThread");
    borrowThread.start();

    // Wait for sometime and borrow with another key
    // Should not block
    Thread.sleep(1000);
    fireEvent("borrowTwo");
    pool.borrowObject("two");
    assertEquals(1, pool.getNumActive("one"));
    assertEquals(1, pool.getNumActive("two"));

    // Unblock and join the thread
    pool.returnObject("one", obj);
    borrowThread.join();
    assertEquals(0, pool.getNumActive("one"));
    assertEquals(1, pool.getNumActive("two"));
}