public void sendMessage() throws Exception { final SMPPSession session = sessionPool.borrowObject(); try { final String messageId = session.submitShortMessage( serviceType, sourceTon, sourceNpi, sourceAddress, destinationTon, destinationNpi, destinationAddress, esm, protocolId, priorityFlag, scheduleDeliveryTime, validityPeriod, registeredDelivery, replaceIfPresentFlag, dataCoding, smDefaultMsgId, message ); Log.debug( "Message submitted, message_id is '{}'.", messageId ); } finally { sessionPool.returnObject( session ); } } }
/** * Closes the underlying {@code ObjectPool} when destroying this object. */ @Override public void destroy() throws Exception { if (this.pool != null) { logger.debug("Closing Commons ObjectPool"); this.pool.close(); } }
@Override public int getActiveCount() throws UnsupportedOperationException { return (this.pool != null ? this.pool.getNumActive() : 0); }
@Test public void testBaseNumActiveNumIdle() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException e) { return; // skip this test if unsupported } assertEquals(0,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); final String obj0 = _pool.borrowObject(); assertEquals(1,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); final String obj1 = _pool.borrowObject(); assertEquals(2,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); _pool.returnObject(obj1); assertEquals(1,_pool.getNumActive()); assertEquals(1,_pool.getNumIdle()); _pool.returnObject(obj0); assertEquals(0,_pool.getNumActive()); assertEquals(2,_pool.getNumIdle()); _pool.close(); }
private static List<String> invokeEveryMethod(final ObjectPool<Object> op) throws Exception { op.addObject(); op.borrowObject(); op.clear(); op.close(); op.getNumActive(); op.getNumIdle(); op.invalidateObject(new Object()); op.returnObject(new Object()); op.toString(); final List<String> expectedMethods = Arrays.asList(new String[] { "addObject", "borrowObject", "clear", "close", "getNumActive", "getNumIdle", "invalidateObject", "returnObject", "toString" }); return expectedMethods; }
@Test public void testBaseClosePool() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException e) { return; // skip this test if unsupported } final String obj = _pool.borrowObject(); _pool.returnObject(obj); _pool.close(); try { _pool.borrowObject(); fail("Expected IllegalStateException"); } catch(final IllegalStateException e) { // expected } }
/** * Returns the specified object to the underlying {@code ObjectPool}. */ @Override public void releaseTarget(Object target) throws Exception { if (this.pool != null) { this.pool.returnObject(target); } }
pool.addObject(); expectedMethods.add("addObject"); Object o = pool.borrowObject(); expectedMethods.add("borrowObject"); pool.returnObject(o); expectedMethods.add("returnObject"); assertEquals(expectedMethods, calledMethods); assertEquals(1, pool.getNumActive()); expectedMethods.add("getNumActive"); assertEquals(1, pool.getNumIdle()); expectedMethods.add("getNumIdle"); o = pool.borrowObject(); expectedMethods.add("borrowObject"); pool.returnObject(o); expectedMethods.add("returnObject"); o = pool.borrowObject(); expectedMethods.add("borrowObject"); pool.returnObject(o); expectedMethods.add("getNumIdle"); expectedMethods.add("invalidateObject"); pool.clear();
@Test public void testBaseInvalidateObject() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException e) { return; // skip this test if unsupported } assertEquals(0,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); final String obj0 = _pool.borrowObject(); final String obj1 = _pool.borrowObject(); assertEquals(2,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); _pool.invalidateObject(obj0); assertEquals(1,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); _pool.invalidateObject(obj1); assertEquals(0,_pool.getNumActive()); assertEquals(0,_pool.getNumIdle()); _pool.close(); }
/** * Borrows an object from the {@code ObjectPool}. */ @Override public Object getTarget() throws Exception { Assert.state(this.pool != null, "No Commons ObjectPool available"); return this.pool.borrowObject(); }
pool.addObject(); clear(factory, expectedMethods); obj = pool.borrowObject(); expectedMethods.add(new MethodCall("activateObject", ZERO)); expectedMethods.add(new MethodCall("validateObject", ZERO).returned(Boolean.TRUE)); assertEquals(expectedMethods, factory.getMethodCalls()); pool.returnObject(obj); obj = pool.borrowObject(); fail("Expected borrowObject to propagate makeObject exception."); } catch (final PrivateException pe) { pool.addObject(); clear(factory, expectedMethods); expectedMethods.add(new MethodCall("activateObject", obj)); try { pool.borrowObject(); fail("Expecting NoSuchElementException"); } catch (final NoSuchElementException ex) { pool.addObject(); clear(factory, expectedMethods); expectedMethods.add(new MethodCall("validateObject", ZERO)); try { pool.borrowObject(); } catch (final NoSuchElementException ex) {
if (factor.getNextShrink() < now) { // XXX: Pool 3: move test final int numIdle = pool.getNumIdle(); if (numIdle > 0) { discard = true; pool.invalidateObject(obj); } else { pool.returnObject(obj);
obj = pool.borrowObject(); clear(factory, expectedMethods); pool.invalidateObject(obj); expectedMethods.add(new MethodCall("destroyObject", obj)); assertEquals(expectedMethods, factory.getMethodCalls()); obj = pool.borrowObject(); clear(factory, expectedMethods); factory.setDestroyObjectFail(true); try { pool.invalidateObject(obj); fail("Expecting destroy exception to propagate"); } catch (final PrivateException ex) { removeDestroyObjectCall(factory.getMethodCalls()); assertEquals(expectedMethods, factory.getMethodCalls()); pool.close();
@Test public void testBaseBorrow() throws Exception { try { _pool = makeEmptyPool(3); } catch(final UnsupportedOperationException e) { return; // skip this test if unsupported } assertEquals(getNthObject(0),_pool.borrowObject()); assertEquals(getNthObject(1),_pool.borrowObject()); assertEquals(getNthObject(2),_pool.borrowObject()); _pool.close(); }
assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); pool.addObject(); assertEquals(0, pool.getNumActive()); assertEquals(1, pool.getNumIdle()); expectedMethods.add(new MethodCall("makeObject").returned(ZERO)); pool.addObject(); fail("Expected addObject to propagate makeObject exception."); } catch (final PrivateException pe) { factory.setPassivateObjectFail(true); try { pool.addObject(); fail("Expected addObject to propagate passivateObject exception."); } catch (final PrivateException pe) { pool.close();
@Test public void testPassThroughMethods01() throws Exception { assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); pool.addObject(); assertEquals(0, pool.getNumActive()); assertEquals(1, pool.getNumIdle()); pool.clear(); assertEquals(0, pool.getNumActive()); assertEquals(0, pool.getNumIdle()); }
private void close() { streamingMemory.addAndGet(-bufferCapacity * (pool.getNumActive() + pool.getNumIdle())); try { pool.close(); } finally { signal(poolNotFull::signalAll); } }
@Test public void testPOFClearUsages() throws Exception { final MethodCallPoolableObjectFactory factory = new MethodCallPoolableObjectFactory(); final ObjectPool<Object> pool; try { pool = makeEmptyPool(factory); } catch (final UnsupportedOperationException uoe) { return; // test not supported } final List<MethodCall> expectedMethods = new ArrayList<>(); /// Test correct behavior code paths PoolUtils.prefill(pool, 5); pool.clear(); //// Test exception handling clear should swallow destory object failures reset(pool, factory, expectedMethods); factory.setDestroyObjectFail(true); PoolUtils.prefill(pool, 5); pool.clear(); pool.close(); }
@Test(expected=IllegalStateException.class) public void testAccessAfterInvalidate() throws Exception { final TestObject obj = pool.borrowObject(); assertNotNull(obj); // Make sure proxied methods are working obj.setData(DATA1); assertEquals(DATA1, obj.getData()); pool.invalidateObject(obj); assertNotNull(obj); obj.getData(); }
@Override public int getIdleCount() throws UnsupportedOperationException { return (this.pool != null ? this.pool.getNumIdle() : 0); }