/** * {@inheritDoc} */ @Override public PooledObject<V> makeObject(final K key) throws Exception { writeLock.lock(); try { return keyedFactory.makeObject(key); } finally { writeLock.unlock(); } }
p = factory.makeObject(key); } catch (final Exception e) { numTotal.decrementAndGet();
private static <K, V> List<String> invokeEveryMethod(final KeyedPooledObjectFactory<K, V> kpof) throws Exception { kpof.activateObject(null, null); kpof.destroyObject(null, null); kpof.makeObject(null); kpof.passivateObject(null, null); kpof.validateObject(null, null); kpof.toString(); final List<String> expectedMethods = Arrays.asList(new String[] { "activateObject", "destroyObject", "makeObject", "passivateObject", "validateObject", "toString", }); return expectedMethods; }
/** * {@inheritDoc} */ @Override public PooledObject<V> makeObject(final K key) throws Exception { writeLock.lock(); try { return keyedFactory.makeObject(key); } finally { writeLock.unlock(); } }
@Test public void poolFactoryNonstandardObjectLifecycleTest() throws Exception { // Pooled object may be created and passivated right away // E.g. GenericKeyedObjectPool: returnObject() -> reuseCapacity() -> create() and addIdleObject(), which invokes passivate() PooledObject<TServiceClient> pooledObject = factory.makeObject(thriftClientKey); factory.passivateObject(thriftClientKey, pooledObject); }
@Test public void poolFactoryOverlappingObjectLifecyclesTest() throws Exception { PooledObject<TServiceClient> pooledObject1 = factory.makeObject(thriftClientKey); // activateObject leads to tracer.isEnabled() --> true factory.activateObject(thriftClientKey, pooledObject1); factory.validateObject(thriftClientKey, pooledObject1); // Create another pooled object and passivate it right away. // See poolFactoryNonstandardObjectLifecycleTest() for details PooledObject<TServiceClient> pooledObject2 = factory.makeObject(thriftClientKey); factory.passivateObject(thriftClientKey, pooledObject2); } }
p = factory.makeObject(key); } catch (final Exception e) { numTotal.decrementAndGet();
@Test public void poolFactoryFullObjectLifecycleTest() throws Exception { PooledObject<TServiceClient> pooledObject = factory.makeObject(thriftClientKey); factory.activateObject(thriftClientKey, pooledObject); factory.validateObject(thriftClientKey, pooledObject); factory.passivateObject(thriftClientKey, pooledObject); }