@Override public void destroyObject(PooledObject<Object> p) throws Exception { destroyPrototypeInstance(p.getObject()); }
/** * Destroys a wrapped pooled object. * * @param toDestroy The wrapped pooled object to destroy * * @throws Exception If the factory fails to destroy the pooled object * cleanly */ private void destroy(final PooledObject<T> toDestroy) throws Exception { toDestroy.invalidate(); idleObjects.remove(toDestroy); allObjects.remove(new IdentityWrapper<>(toDestroy.getObject())); try { factory.destroyObject(toDestroy); } finally { destroyedCount.incrementAndGet(); createCount.decrementAndGet(); } }
final PooledObject<T> pooledObject = it.next(); synchronized (pooledObject) { if (pooledObject.getState() == PooledObjectState.ALLOCATED && pooledObject.getLastUsedTime() <= timeout) { pooledObject.markAbandoned(); remove.add(pooledObject); final PooledObject<T> pooledObject = itr.next(); if (ac.getLogAbandoned()) { pooledObject.printStackTrace(ac.getLogWriter()); invalidateObject(pooledObject.getObject()); } catch (final Exception e) { e.printStackTrace();
p.setLogAbandoned(true); allObjects.put(new IdentityWrapper<>(p.getObject()), p); return p;
@Override public long getCreateTime() { return pooledObject.getCreateTime(); }
objectDeque.getAllObjects().remove(new IdentityWrapper<>(toDestroy.getObject())); toDestroy.invalidate();
@Override public String getCreateTimeFormatted() { final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); return sdf.format(Long.valueOf(pooledObject.getCreateTime())); }
@Override public void destroyObject(final PooledObject<MemcachedClientIF> p) { try { p.getObject().shutdown(); p.invalidate(); } catch (final Exception e) { LOGGER.error(e.getMessage(), e); } }
private void validateLifetime(final PooledObject<PooledConnectionAndInfo> p) throws Exception { if (maxConnLifetimeMillis > 0) { final long lifetime = System.currentTimeMillis() - p.getCreateTime(); if (lifetime > maxConnLifetimeMillis) { throw new Exception(Utils.getMessage("connectionFactory.lifetimeExceeded", Long.valueOf(lifetime), Long.valueOf(maxConnLifetimeMillis))); } } } }
private void validateLifetime(final PooledObject<PooledConnectionAndInfo> p) throws Exception { if (maxConnLifetimeMillis > 0) { final long lifetime = System.currentTimeMillis() - p.getCreateTime(); if (lifetime > maxConnLifetimeMillis) { throw new Exception(Utils.getMessage("connectionFactory.lifetimeExceeded", Long.valueOf(lifetime), Long.valueOf(maxConnLifetimeMillis))); } } } }
@Override public void activateObject(PooledObject<FTPClient> p) throws Exception { p.getObject().sendNoOp(); }
private void validateLifetime(final PooledObject<PoolableConnection> p) throws Exception { if (maxConnLifetimeMillis > 0) { final long lifetime = System.currentTimeMillis() - p.getCreateTime(); if (lifetime > maxConnLifetimeMillis) { throw new LifetimeExceededException(Utils.getMessage("connectionFactory.lifetimeExceeded", Long.valueOf(lifetime), Long.valueOf(maxConnLifetimeMillis))); } } }
@Override public void passivateObject(Event.Type key, PooledObject<Event> pooledObject) throws Exception { final Event event = pooledObject.getObject(); switch (event.type) { case BEFORE: unsafe.putObject(event, targetFieldInBeforeEventOffset, null); unsafe.putObject(event, argumentArrayFieldInBeforeEventOffset, null); break; case IMMEDIATELY_THROWS: case THROWS: unsafe.putObject(event, throwableFieldInThrowsEventOffset, null); break; case IMMEDIATELY_RETURN: case RETURN: unsafe.putObject(event, objectFieldInReturnEventOffset, null); } }
@Override public boolean validateObject(PooledObject<T> p) { return p.getObject().isOpen(); } }
@Override public void destroyObject(final PreparedContextKey key, final PooledObject<PreparedContext> p) { PreparedContext cachedContext = p.getObject(); cachedContext.close(); }
@Override public void destroyObject(PooledObject<T> p) throws Exception { p.getObject().close(); }