public int getNumIdle() { return isEnable ? pool.getNumIdle() : -1; }
public int getNumIdle(Event.Type type) { return isEnable ? pool.getNumIdle(type) : -1; }
/** * {@inheritDoc} */ @Override public int getNumIdle(final K key) { return keyedPool.getNumIdle(key); }
/** * {@inheritDoc} */ @Override public int getNumIdle() { return keyedPool.getNumIdle(); }
@Override public int getNumIdle() { return pool.getNumIdle(); }
@Override public int getNumIdle(final K key) { return pool.getNumIdle(key); }
/** * {@inheritDoc} */ @Override public int getNumIdle(final K key) { final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumIdle(key); } finally { readLock.unlock(); } }
/** * {@inheritDoc} */ @Override public int getNumIdle() { final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumIdle(); } finally { readLock.unlock(); } }
/** * {@inheritDoc} */ @Override public void run() { boolean success = false; try { if (keyedPool.getNumIdle(key) < minIdle) { keyedPool.addObject(key); } success = true; } catch (final Exception e) { cancel(); } finally { // detect other types of Throwable and cancel this Timer if (!success) { cancel(); } } }
private static List<String> invokeEveryMethod(final KeyedObjectPool<Object,Object> kop) throws Exception { kop.addObject(null); kop.borrowObject(null); kop.clear(); kop.clear(null); kop.close(); kop.getNumActive(); kop.getNumActive(null); kop.getNumIdle(); kop.getNumIdle(null); kop.invalidateObject(null, new Object()); kop.returnObject(null, new Object()); kop.toString(); final List<String> expectedMethods = Arrays.asList(new String[] { "addObject", "borrowObject", "clear", "clear", "close", "getNumActive", "getNumActive", "getNumIdle", "getNumIdle", "invalidateObject", "returnObject", "toString" }); return expectedMethods; }
@Test public void testPassThroughMethods01() throws Exception { assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); pool.addObject(KEY1); assertEquals(0, pool.getNumActive()); assertEquals(1, pool.getNumIdle()); pool.clear(); assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }
PoolUtils.checkMinIdle(kop, key, 2, 100); Thread.sleep(400); assertEquals(2, kop.getNumIdle(key)); assertEquals(2, kop.getNumIdle());
@Test public void testBaseNumActiveNumIdle() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException uoe) { return; // skip this test if unsupported } final Object keya = makeKey(0); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); final Object obj0 = _pool.borrowObject(keya); assertEquals(1,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); final Object obj1 = _pool.borrowObject(keya); assertEquals(2,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); _pool.returnObject(keya,obj1); assertEquals(1,_pool.getNumActive(keya)); assertEquals(1,_pool.getNumIdle(keya)); _pool.returnObject(keya,obj0); assertEquals(0,_pool.getNumActive(keya)); assertEquals(2,_pool.getNumIdle(keya)); assertEquals(0,_pool.getNumActive("xyzzy12345")); assertEquals(0,_pool.getNumIdle("xyzzy12345")); _pool.close(); }
assertEquals(0,_pool.getNumIdle()); assertEquals(0,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle(key)); assertEquals(0,_pool.getNumActive(key)); _pool.addObject(key); assertEquals(1,_pool.getNumIdle()); assertEquals(0,_pool.getNumActive()); assertEquals(1,_pool.getNumIdle(key)); assertEquals(0,_pool.getNumActive(key)); final Object obj = _pool.borrowObject(key); assertEquals(getNthObject(key,0),obj); assertEquals(0,_pool.getNumIdle()); assertEquals(1,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle(key)); assertEquals(1,_pool.getNumActive(key)); _pool.returnObject(key,obj); assertEquals(1,_pool.getNumIdle()); assertEquals(0,_pool.getNumActive()); assertEquals(1,_pool.getNumIdle(key)); assertEquals(0,_pool.getNumActive(key)); } catch(final UnsupportedOperationException e) {
@Test public void testBaseInvalidateObject() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException uoe) { return; // skip this test if unsupported } final Object keya = makeKey(0); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); final Object obj0 = _pool.borrowObject(keya); final Object obj1 = _pool.borrowObject(keya); assertEquals(2,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); _pool.invalidateObject(keya,obj0); assertEquals(1,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); _pool.invalidateObject(keya,obj1); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); _pool.close(); }
final Object keyb = makeKey(1); assertEquals(0,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); assertEquals(0,_pool.getNumActive(keyb)); assertEquals(0,_pool.getNumIdle(keyb)); assertEquals(0,_pool.getNumIdle()); assertEquals(1,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); assertEquals(1,_pool.getNumActive(keyb)); assertEquals(0,_pool.getNumIdle(keyb)); assertEquals(0,_pool.getNumIdle()); assertEquals(2,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); assertEquals(2,_pool.getNumActive(keyb)); assertEquals(0,_pool.getNumIdle(keyb)); assertEquals(2,_pool.getNumIdle()); assertEquals(1,_pool.getNumActive(keya)); assertEquals(1,_pool.getNumIdle(keya)); assertEquals(1,_pool.getNumActive(keyb)); assertEquals(1,_pool.getNumIdle(keyb)); assertEquals(4,_pool.getNumIdle()); assertEquals(0,_pool.getNumActive(keya)); assertEquals(2,_pool.getNumIdle(keya));
assertEquals("A closed pool shouldn't have any idle objects.", 0, pool.getNumIdle(KEY)); assertEquals("A closed pool shouldn't have any idle objects.", 0, pool.getNumIdle()); pool.getNumActive(); pool.getNumActive(KEY); pool.returnObject(KEY, o1); assertEquals("returnObject should not add items back into the idle object pool for a closed pool.", 0, pool.getNumIdle(KEY)); assertEquals("returnObject should not add items back into the idle object pool for a closed pool.", 0, pool.getNumIdle()); pool.invalidateObject(KEY, o2); pool.clear(KEY);
@Test public void testBaseClear() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException uoe) { return; // skip this test if unsupported } final Object keya = makeKey(0); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); final Object obj0 = _pool.borrowObject(keya); final Object obj1 = _pool.borrowObject(keya); assertEquals(2,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); _pool.returnObject(keya,obj1); _pool.returnObject(keya,obj0); assertEquals(0,_pool.getNumActive(keya)); assertEquals(2,_pool.getNumIdle(keya)); _pool.clear(keya); assertEquals(0,_pool.getNumActive(keya)); assertEquals(0,_pool.getNumIdle(keya)); final Object obj2 = _pool.borrowObject(keya); assertEquals(getNthObject(keya,2),obj2); _pool.close(); }
assertEquals(1, pool.getNumIdle()); expectedMethods.add("getNumIdle");
pool.addObject(KEY); pool.addObject(KEY); assertEquals(3, pool.getNumIdle(KEY)); obj = pool.borrowObject(KEY); obj = pool.borrowObject(KEY); assertEquals(1, pool.getNumIdle(KEY)); assertEquals(2, pool.getNumActive(KEY)); clear(factory, expectedMethods); assertEquals(1, pool.getNumIdle(KEY)); // Not added assertEquals(1, pool.getNumActive(KEY)); // But not active