Author: markt Date: Fri May 13 20:02:33 2016 New Revision: 1743737 URL: http://svn.apache.org/viewvc?rev=1743737&view=rev Log: Update internal fork of Commons Pool 2
Added: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObject.java - copied, changed from r1743734, commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseObject.java Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseKeyedPooledObjectFactory.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObjectPool.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BasePooledObjectFactory.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/UsageTracking.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/AbandonedConfig.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseGenericObjectPool.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultEvictionPolicy.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionConfig.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionTimer.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPoolConfig.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPoolConfig.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/InterruptibleReentrantLock.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/LinkedBlockingDeque.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/PoolImplUtils.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/PooledSoftReference.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/SoftReferenceObjectPool.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri May 13 20:02:33 2016 @@ -1,2 +1,2 @@ -/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2:1593516-1693755 -/tomcat/trunk/java/org/apache/tomcat/dbcp/pool2:1643814,1648907,1682320,1694660 +/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2:1593516-1743734 +/tomcat/trunk/java/org/apache/tomcat/dbcp/pool2:1643814-1743698 Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseKeyedPooledObjectFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseKeyedPooledObjectFactory.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseKeyedPooledObjectFactory.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseKeyedPooledObjectFactory.java Fri May 13 20:02:33 2016 @@ -30,7 +30,7 @@ package org.apache.tomcat.dbcp.pool2; * * @since 2.0 */ -public abstract class BaseKeyedPooledObjectFactory<K,V> +public abstract class BaseKeyedPooledObjectFactory<K,V> extends BaseObject implements KeyedPooledObjectFactory<K,V> { /** @@ -56,7 +56,7 @@ public abstract class BaseKeyedPooledObj public abstract PooledObject<V> wrap(V value); @Override - public PooledObject<V> makeObject(K key) throws Exception { + public PooledObject<V> makeObject(final K key) throws Exception { return wrap(create(key)); } @@ -69,7 +69,7 @@ public abstract class BaseKeyedPooledObj * @param p a {@code PooledObject} wrapping the the instance to be destroyed */ @Override - public void destroyObject(K key, PooledObject<V> p) + public void destroyObject(final K key, final PooledObject<V> p) throws Exception { } @@ -83,7 +83,7 @@ public abstract class BaseKeyedPooledObj * @return always <code>true</code> in the default implementation */ @Override - public boolean validateObject(K key, PooledObject<V> p) { + public boolean validateObject(final K key, final PooledObject<V> p) { return true; } @@ -96,7 +96,7 @@ public abstract class BaseKeyedPooledObj * @param p a {@code PooledObject} wrapping the the instance to be activated */ @Override - public void activateObject(K key, PooledObject<V> p) + public void activateObject(final K key, final PooledObject<V> p) throws Exception { } @@ -109,7 +109,7 @@ public abstract class BaseKeyedPooledObj * @param p a {@code PooledObject} wrapping the the instance to be passivated */ @Override - public void passivateObject(K key, PooledObject<V> p) + public void passivateObject(final K key, final PooledObject<V> p) throws Exception { } } Copied: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObject.java (from r1743734, commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseObject.java) URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObject.java?p2=tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObject.java&p1=commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseObject.java&r1=1743734&r2=1743737&rev=1743737&view=diff ============================================================================== --- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/BaseObject.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObject.java Fri May 13 20:02:33 2016 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.commons.pool2; +package org.apache.tomcat.dbcp.pool2; /** * A base class for common functionality. Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObjectPool.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObjectPool.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObjectPool.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BaseObjectPool.java Fri May 13 20:02:33 2016 @@ -27,7 +27,7 @@ package org.apache.tomcat.dbcp.pool2; * * @since 2.0 */ -public abstract class BaseObjectPool<T> implements ObjectPool<T> { +public abstract class BaseObjectPool<T> extends BaseObject implements ObjectPool<T> { @Override public abstract T borrowObject() throws Exception; @@ -116,4 +116,10 @@ public abstract class BaseObjectPool<T> } private volatile boolean closed = false; + + @Override + protected void toStringAppendFields(final StringBuilder builder) { + builder.append("closed="); + builder.append(closed); + } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BasePooledObjectFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BasePooledObjectFactory.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BasePooledObjectFactory.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/BasePooledObjectFactory.java Fri May 13 20:02:33 2016 @@ -30,7 +30,7 @@ package org.apache.tomcat.dbcp.pool2; * * @since 2.0 */ -public abstract class BasePooledObjectFactory<T> implements PooledObjectFactory<T> { +public abstract class BasePooledObjectFactory<T> extends BaseObject implements PooledObjectFactory<T> { /** * Creates an object instance, to be wrapped in a {@link PooledObject}. * <p>This method <strong>must</strong> support concurrent, multi-threaded @@ -64,7 +64,7 @@ public abstract class BasePooledObjectFa * @param p ignored */ @Override - public void destroyObject(PooledObject<T> p) + public void destroyObject(final PooledObject<T> p) throws Exception { } @@ -76,7 +76,7 @@ public abstract class BasePooledObjectFa * @return {@code true} */ @Override - public boolean validateObject(PooledObject<T> p) { + public boolean validateObject(final PooledObject<T> p) { return true; } @@ -86,7 +86,7 @@ public abstract class BasePooledObjectFa * @param p ignored */ @Override - public void activateObject(PooledObject<T> p) throws Exception { + public void activateObject(final PooledObject<T> p) throws Exception { } /** @@ -95,7 +95,7 @@ public abstract class BasePooledObjectFa * @param p ignored */ @Override - public void passivateObject(PooledObject<T> p) + public void passivateObject(final PooledObject<T> p) throws Exception { } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java Fri May 13 20:02:33 2016 @@ -66,7 +66,7 @@ public final class PoolUtils { * @throws VirtualMachineError * if that is passed in */ - public static void checkRethrow(Throwable t) { + public static void checkRethrow(final Throwable t) { if (t instanceof ThreadDeath) { throw (ThreadDeath) t; } @@ -563,7 +563,7 @@ public final class PoolUtils { * instances reaches the configured minIdle. Note that this is not the same * as the pool's minIdle setting. */ - private static class ObjectPoolMinIdleTimerTask<T> extends TimerTask { + private static final class ObjectPoolMinIdleTimerTask<T> extends TimerTask { /** Minimum number of idle instances. Not the same as pool.getMinIdle(). */ private final int minIdle; @@ -603,7 +603,7 @@ public final class PoolUtils { } success = true; - } catch (Exception e) { + } catch (final Exception e) { cancel(); } finally { // detect other types of Throwable and cancel this Timer @@ -632,7 +632,7 @@ public final class PoolUtils { * instances for the given key reaches the configured minIdle. Note that * this is not the same as the pool's minIdle setting. */ - private static class KeyedObjectPoolMinIdleTimerTask<K, V> extends + private static final class KeyedObjectPoolMinIdleTimerTask<K, V> extends TimerTask { /** Minimum number of idle instances. Not the same as pool.getMinIdle(). */ private final int minIdle; @@ -678,7 +678,7 @@ public final class PoolUtils { } success = true; - } catch (Exception e) { + } catch (final Exception e) { cancel(); } finally { @@ -716,7 +716,7 @@ public final class PoolUtils { * deadlock. * </p> */ - private static class SynchronizedObjectPool<T> implements ObjectPool<T> { + private static final class SynchronizedObjectPool<T> implements ObjectPool<T> { /** * Object whose monitor is used to synchronize methods on the wrapped @@ -750,7 +750,7 @@ public final class PoolUtils { @Override public T borrowObject() throws Exception, NoSuchElementException, IllegalStateException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { return pool.borrowObject(); @@ -764,11 +764,11 @@ public final class PoolUtils { */ @Override public void returnObject(final T obj) { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { pool.returnObject(obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed as of Pool 2 } finally { writeLock.unlock(); @@ -780,11 +780,11 @@ public final class PoolUtils { */ @Override public void invalidateObject(final T obj) { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { pool.invalidateObject(obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed as of Pool 2 } finally { writeLock.unlock(); @@ -797,7 +797,7 @@ public final class PoolUtils { @Override public void addObject() throws Exception, IllegalStateException, UnsupportedOperationException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { pool.addObject(); @@ -811,7 +811,7 @@ public final class PoolUtils { */ @Override public int getNumIdle() { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return pool.getNumIdle(); @@ -825,7 +825,7 @@ public final class PoolUtils { */ @Override public int getNumActive() { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return pool.getNumActive(); @@ -839,7 +839,7 @@ public final class PoolUtils { */ @Override public void clear() throws Exception, UnsupportedOperationException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { pool.clear(); @@ -853,11 +853,11 @@ public final class PoolUtils { */ @Override public void close() { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { pool.close(); - } catch (Exception e) { + } catch (final Exception e) { // swallowed as of Pool 2 } finally { writeLock.unlock(); @@ -889,7 +889,7 @@ public final class PoolUtils { * deadlock. * </p> */ - private static class SynchronizedKeyedObjectPool<K, V> implements + private static final class SynchronizedKeyedObjectPool<K, V> implements KeyedObjectPool<K, V> { /** @@ -924,7 +924,7 @@ public final class PoolUtils { @Override public V borrowObject(final K key) throws Exception, NoSuchElementException, IllegalStateException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { return keyedPool.borrowObject(key); @@ -938,11 +938,11 @@ public final class PoolUtils { */ @Override public void returnObject(final K key, final V obj) { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.returnObject(key, obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed } finally { writeLock.unlock(); @@ -954,11 +954,11 @@ public final class PoolUtils { */ @Override public void invalidateObject(final K key, final V obj) { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.invalidateObject(key, obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed as of Pool 2 } finally { writeLock.unlock(); @@ -971,7 +971,7 @@ public final class PoolUtils { @Override public void addObject(final K key) throws Exception, IllegalStateException, UnsupportedOperationException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.addObject(key); @@ -985,7 +985,7 @@ public final class PoolUtils { */ @Override public int getNumIdle(final K key) { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumIdle(key); @@ -999,7 +999,7 @@ public final class PoolUtils { */ @Override public int getNumActive(final K key) { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumActive(key); @@ -1013,7 +1013,7 @@ public final class PoolUtils { */ @Override public int getNumIdle() { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumIdle(); @@ -1027,7 +1027,7 @@ public final class PoolUtils { */ @Override public int getNumActive() { - ReadLock readLock = readWriteLock.readLock(); + final ReadLock readLock = readWriteLock.readLock(); readLock.lock(); try { return keyedPool.getNumActive(); @@ -1041,7 +1041,7 @@ public final class PoolUtils { */ @Override public void clear() throws Exception, UnsupportedOperationException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.clear(); @@ -1056,7 +1056,7 @@ public final class PoolUtils { @Override public void clear(final K key) throws Exception, UnsupportedOperationException { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.clear(key); @@ -1070,11 +1070,11 @@ public final class PoolUtils { */ @Override public void close() { - WriteLock writeLock = readWriteLock.writeLock(); + final WriteLock writeLock = readWriteLock.writeLock(); writeLock.lock(); try { keyedPool.close(); - } catch (Exception e) { + } catch (final Exception e) { // swallowed as of Pool 2 } finally { writeLock.unlock(); @@ -1104,7 +1104,7 @@ public final class PoolUtils { * Pool library. * </p> */ - private static class SynchronizedPooledObjectFactory<T> implements + private static final class SynchronizedPooledObjectFactory<T> implements PooledObjectFactory<T> { /** Synchronization lock */ private final WriteLock writeLock = new ReentrantReadWriteLock().writeLock(); @@ -1217,7 +1217,7 @@ public final class PoolUtils { * Pool library. * </p> */ - private static class SynchronizedKeyedPooledObjectFactory<K, V> + private static final class SynchronizedKeyedPooledObjectFactory<K, V> implements KeyedPooledObjectFactory<K, V> { /** Synchronization lock */ private final WriteLock writeLock = new ReentrantReadWriteLock().writeLock(); @@ -1332,7 +1332,7 @@ public final class PoolUtils { * to previously established high water mark), erosion occurs more * frequently. */ - private static class ErodingFactor { + private static final class ErodingFactor { /** Determines frequency of "erosion" events */ private final float factor; @@ -1464,7 +1464,7 @@ public final class PoolUtils { } else { pool.returnObject(obj); } - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1476,7 +1476,7 @@ public final class PoolUtils { public void invalidateObject(final T obj) { try { pool.invalidateObject(obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1521,7 +1521,7 @@ public final class PoolUtils { public void close() { try { pool.close(); - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1629,7 +1629,7 @@ public final class PoolUtils { } else { keyedPool.returnObject(key, obj); } - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1652,7 +1652,7 @@ public final class PoolUtils { public void invalidateObject(final K key, final V obj) { try { keyedPool.invalidateObject(key, obj); - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1722,7 +1722,7 @@ public final class PoolUtils { public void close() { try { keyedPool.close(); - } catch (Exception e) { + } catch (final Exception e) { // swallowed } } @@ -1751,7 +1751,7 @@ public final class PoolUtils { * per-key basis. Timing of erosion events is tracked separately for * separate keyed pools. */ - private static class ErodingPerKeyKeyedObjectPool<K, V> extends + private static final class ErodingPerKeyKeyedObjectPool<K, V> extends ErodingKeyedObjectPool<K, V> { /** Erosion factor - same for all pools */ private final float factor; Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/UsageTracking.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/UsageTracking.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/UsageTracking.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/UsageTracking.java Fri May 13 20:02:33 2016 @@ -30,7 +30,7 @@ package org.apache.tomcat.dbcp.pool2; public interface UsageTracking<T> { /** - * This method is called every time a pooled object to enable the pool to + * This method is called every time a pooled object is used to enable the pool to * better track borrowed objects. * * @param pooledObject The object that is being used Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/AbandonedConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/AbandonedConfig.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/AbandonedConfig.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/AbandonedConfig.java Fri May 13 20:02:33 2016 @@ -55,7 +55,7 @@ public class AbandonedConfig { * removed by borrowObject * @see #getRemoveAbandonedOnBorrow() */ - public void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow) { + public void setRemoveAbandonedOnBorrow(final boolean removeAbandonedOnBorrow) { this.removeAbandonedOnBorrow = removeAbandonedOnBorrow; } @@ -92,7 +92,7 @@ public class AbandonedConfig { * removed by pool maintenance * @see #getRemoveAbandonedOnMaintenance */ - public void setRemoveAbandonedOnMaintenance(boolean removeAbandonedOnMaintenance) { + public void setRemoveAbandonedOnMaintenance(final boolean removeAbandonedOnMaintenance) { this.removeAbandonedOnMaintenance = removeAbandonedOnMaintenance; } @@ -129,7 +129,7 @@ public class AbandonedConfig { * @param removeAbandonedTimeout new abandoned timeout in seconds * @see #getRemoveAbandonedTimeout() */ - public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) { + public void setRemoveAbandonedTimeout(final int removeAbandonedTimeout) { this.removeAbandonedTimeout = removeAbandonedTimeout; } @@ -163,7 +163,7 @@ public class AbandonedConfig { * @see #getLogAbandoned() * */ - public void setLogAbandoned(boolean logAbandoned) { + public void setLogAbandoned(final boolean logAbandoned) { this.logAbandoned = logAbandoned; } @@ -190,7 +190,7 @@ public class AbandonedConfig { * * @param logWriter The new log writer */ - public void setLogWriter(PrintWriter logWriter) { + public void setLogWriter(final PrintWriter logWriter) { this.logWriter = logWriter; } @@ -226,7 +226,29 @@ public class AbandonedConfig { * the recording of a stack trace on every use * of a pooled object */ - public void setUseUsageTracking(boolean useUsageTracking) { + public void setUseUsageTracking(final boolean useUsageTracking) { this.useUsageTracking = useUsageTracking; } + + /** + * @since 2.4.3 + */ + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("AbandonedConfig [removeAbandonedOnBorrow="); + builder.append(removeAbandonedOnBorrow); + builder.append(", removeAbandonedOnMaintenance="); + builder.append(removeAbandonedOnMaintenance); + builder.append(", removeAbandonedTimeout="); + builder.append(removeAbandonedTimeout); + builder.append(", logAbandoned="); + builder.append(logAbandoned); + builder.append(", logWriter="); + builder.append(logWriter); + builder.append(", useUsageTracking="); + builder.append(useUsageTracking); + builder.append("]"); + return builder.toString(); + } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseGenericObjectPool.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseGenericObjectPool.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseGenericObjectPool.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseGenericObjectPool.java Fri May 13 20:02:33 2016 @@ -21,6 +21,7 @@ import java.io.StringWriter; import java.io.Writer; import java.lang.management.ManagementFactory; import java.lang.ref.WeakReference; +import java.util.Arrays; import java.util.Deque; import java.util.Iterator; import java.util.TimerTask; @@ -34,6 +35,7 @@ import javax.management.MalformedObjectN import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; +import org.apache.tomcat.dbcp.pool2.BaseObject; import org.apache.tomcat.dbcp.pool2.PooledObject; import org.apache.tomcat.dbcp.pool2.SwallowedExceptionListener; @@ -48,7 +50,7 @@ import org.apache.tomcat.dbcp.pool2.Swal * * @since 2.0 */ -public abstract class BaseGenericObjectPool<T> { +public abstract class BaseGenericObjectPool<T> extends BaseObject { // Constants /** @@ -125,8 +127,8 @@ public abstract class BaseGenericObjectP * overridden by the config * @param jmxNamePrefix Prefix to be used for JMX name for the new pool */ - public BaseGenericObjectPool(BaseObjectPoolConfig config, - String jmxNameBase, String jmxNamePrefix) { + public BaseGenericObjectPool(final BaseObjectPoolConfig config, + final String jmxNameBase, final String jmxNamePrefix) { if (config.getJmxEnabled()) { this.oname = jmxRegister(config, jmxNameBase, jmxNamePrefix); } else { @@ -137,7 +139,7 @@ public abstract class BaseGenericObjectP this.creationStackTrace = getStackTrace(new Exception()); // save the current TCCL (if any) to be used later by the evictor Thread - ClassLoader cl = Thread.currentThread().getContextClassLoader(); + final ClassLoader cl = Thread.currentThread().getContextClassLoader(); if (cl == null) { factoryClassLoader = null; } else { @@ -174,7 +176,7 @@ public abstract class BaseGenericObjectP * * @see #getMaxTotal */ - public final void setMaxTotal(int maxTotal) { + public final void setMaxTotal(final int maxTotal) { this.maxTotal = maxTotal; } @@ -203,7 +205,7 @@ public abstract class BaseGenericObjectP * * @see #getBlockWhenExhausted */ - public final void setBlockWhenExhausted(boolean blockWhenExhausted) { + public final void setBlockWhenExhausted(final boolean blockWhenExhausted) { this.blockWhenExhausted = blockWhenExhausted; } @@ -238,7 +240,7 @@ public abstract class BaseGenericObjectP * @see #getMaxWaitMillis * @see #setBlockWhenExhausted */ - public final void setMaxWaitMillis(long maxWaitMillis) { + public final void setMaxWaitMillis(final long maxWaitMillis) { this.maxWaitMillis = maxWaitMillis; } @@ -281,7 +283,7 @@ public abstract class BaseGenericObjectP * * @see #getLifo() */ - public final void setLifo(boolean lifo) { + public final void setLifo(final boolean lifo) { this.lifo = lifo; } @@ -318,7 +320,7 @@ public abstract class BaseGenericObjectP * * @since 2.2 */ - public final void setTestOnCreate(boolean testOnCreate) { + public final void setTestOnCreate(final boolean testOnCreate) { this.testOnCreate = testOnCreate; } @@ -353,7 +355,7 @@ public abstract class BaseGenericObjectP * * @see #getTestOnBorrow */ - public final void setTestOnBorrow(boolean testOnBorrow) { + public final void setTestOnBorrow(final boolean testOnBorrow) { this.testOnBorrow = testOnBorrow; } @@ -386,7 +388,7 @@ public abstract class BaseGenericObjectP * * @see #getTestOnReturn */ - public final void setTestOnReturn(boolean testOnReturn) { + public final void setTestOnReturn(final boolean testOnReturn) { this.testOnReturn = testOnReturn; } @@ -423,7 +425,7 @@ public abstract class BaseGenericObjectP * @see #getTestWhileIdle * @see #setTimeBetweenEvictionRunsMillis */ - public final void setTestWhileIdle(boolean testWhileIdle) { + public final void setTestWhileIdle(final boolean testWhileIdle) { this.testWhileIdle = testWhileIdle; } @@ -451,7 +453,7 @@ public abstract class BaseGenericObjectP * @see #getTimeBetweenEvictionRunsMillis */ public final void setTimeBetweenEvictionRunsMillis( - long timeBetweenEvictionRunsMillis) { + final long timeBetweenEvictionRunsMillis) { this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; startEvictor(timeBetweenEvictionRunsMillis); } @@ -491,7 +493,7 @@ public abstract class BaseGenericObjectP * @see #getNumTestsPerEvictionRun * @see #setTimeBetweenEvictionRunsMillis */ - public final void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { + public final void setNumTestsPerEvictionRun(final int numTestsPerEvictionRun) { this.numTestsPerEvictionRun = numTestsPerEvictionRun; } @@ -525,7 +527,7 @@ public abstract class BaseGenericObjectP * @see #setTimeBetweenEvictionRunsMillis */ public final void setMinEvictableIdleTimeMillis( - long minEvictableIdleTimeMillis) { + final long minEvictableIdleTimeMillis) { this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; } @@ -566,7 +568,7 @@ public abstract class BaseGenericObjectP * @see #getSoftMinEvictableIdleTimeMillis */ public final void setSoftMinEvictableIdleTimeMillis( - long softMinEvictableIdleTimeMillis) { + final long softMinEvictableIdleTimeMillis) { this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis; } @@ -594,30 +596,31 @@ public abstract class BaseGenericObjectP * @see #getEvictionPolicyClassName() */ public final void setEvictionPolicyClassName( - String evictionPolicyClassName) { + final String evictionPolicyClassName) { try { Class<?> clazz; try { clazz = Class.forName(evictionPolicyClassName, true, Thread.currentThread().getContextClassLoader()); - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { clazz = Class.forName(evictionPolicyClassName); } - Object policy = clazz.newInstance(); + final Object policy = clazz.newInstance(); if (policy instanceof EvictionPolicy<?>) { @SuppressWarnings("unchecked") // safe, because we just checked the class + final EvictionPolicy<T> evicPolicy = (EvictionPolicy<T>) policy; this.evictionPolicy = evicPolicy; } - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { throw new IllegalArgumentException( "Unable to create EvictionPolicy instance of type " + evictionPolicyClassName, e); - } catch (InstantiationException e) { + } catch (final InstantiationException e) { throw new IllegalArgumentException( "Unable to create EvictionPolicy instance of type " + evictionPolicyClassName, e); - } catch (IllegalAccessException e) { + } catch (final IllegalAccessException e) { throw new IllegalArgumentException( "Unable to create EvictionPolicy instance of type " + evictionPolicyClassName, e); @@ -681,7 +684,7 @@ public abstract class BaseGenericObjectP * * @param delay time in milliseconds before start and between eviction runs */ - final void startEvictor(long delay) { + final void startEvictor(final long delay) { synchronized (evictionLock) { if (null != evictor) { EvictionTimer.cancel(evictor); @@ -845,7 +848,7 @@ public abstract class BaseGenericObjectP * for no listener */ public final void setSwallowedExceptionListener( - SwallowedExceptionListener swallowedExceptionListener) { + final SwallowedExceptionListener swallowedExceptionListener) { this.swallowedExceptionListener = swallowedExceptionListener; } @@ -855,8 +858,8 @@ public abstract class BaseGenericObjectP * * @param e exception to be swallowed */ - final void swallowException(Exception e) { - SwallowedExceptionListener listener = getSwallowedExceptionListener(); + final void swallowException(final Exception e) { + final SwallowedExceptionListener listener = getSwallowedExceptionListener(); if (listener == null) { return; @@ -864,11 +867,11 @@ public abstract class BaseGenericObjectP try { listener.onSwallowException(e); - } catch (OutOfMemoryError oome) { + } catch (final OutOfMemoryError oome) { throw oome; - } catch (VirtualMachineError vme) { + } catch (final VirtualMachineError vme) { throw vme; - } catch (Throwable t) { + } catch (final Throwable t) { // Ignore. Enjoy the irony. } } @@ -878,7 +881,7 @@ public abstract class BaseGenericObjectP * @param p object borrowed from the pool * @param waitTime time (in milliseconds) that the borrowing thread had to wait */ - final void updateStatsBorrow(PooledObject<T> p, long waitTime) { + final void updateStatsBorrow(final PooledObject<T> p, final long waitTime) { borrowedCount.incrementAndGet(); idleTimes.add(p.getIdleTimeMillis()); waitTimes.add(waitTime); @@ -898,7 +901,7 @@ public abstract class BaseGenericObjectP * @param activeTime the amount of time (in milliseconds) that the returning * object was checked out */ - final void updateStatsReturn(long activeTime) { + final void updateStatsReturn(final long activeTime) { returnedCount.incrementAndGet(); activeTimes.add(activeTime); } @@ -911,9 +914,9 @@ public abstract class BaseGenericObjectP try { ManagementFactory.getPlatformMBeanServer().unregisterMBean( oname); - } catch (MBeanRegistrationException e) { + } catch (final MBeanRegistrationException e) { swallowException(e); - } catch (InstanceNotFoundException e) { + } catch (final InstanceNotFoundException e) { swallowException(e); } } @@ -932,10 +935,10 @@ public abstract class BaseGenericObjectP * @param jmxNamePrefix name prefix * @return registered ObjectName, null if registration fails */ - private ObjectName jmxRegister(BaseObjectPoolConfig config, - String jmxNameBase, String jmxNamePrefix) { + private ObjectName jmxRegister(final BaseObjectPoolConfig config, + final String jmxNameBase, String jmxNamePrefix) { ObjectName objectName = null; - MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); int i = 1; boolean registered = false; String base = config.getJmxNameBase(); @@ -955,7 +958,7 @@ public abstract class BaseGenericObjectP mbs.registerMBean(this, objName); objectName = objName; registered = true; - } catch (MalformedObjectNameException e) { + } catch (final MalformedObjectNameException e) { if (BaseObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX.equals( jmxNamePrefix) && jmxNameBase.equals(base)) { // Shouldn't happen. Skip registration if it does. @@ -966,13 +969,13 @@ public abstract class BaseGenericObjectP BaseObjectPoolConfig.DEFAULT_JMX_NAME_PREFIX; base = jmxNameBase; } - } catch (InstanceAlreadyExistsException e) { + } catch (final InstanceAlreadyExistsException e) { // Increment the index and try again i++; - } catch (MBeanRegistrationException e) { + } catch (final MBeanRegistrationException e) { // Shouldn't happen. Skip registration if it does. registered = true; - } catch (NotCompliantMBeanException e) { + } catch (final NotCompliantMBeanException e) { // Shouldn't happen. Skip registration if it does. registered = true; } @@ -985,12 +988,12 @@ public abstract class BaseGenericObjectP * @param e exception to trace * @return exception stack trace as a string */ - private String getStackTrace(Exception e) { + private String getStackTrace(final Exception e) { // Need the exception in string form to prevent the retention of // references to classes in the stack trace that could trigger a memory // leak in a container environment. - Writer w = new StringWriter(); - PrintWriter pw = new PrintWriter(w); + final Writer w = new StringWriter(); + final PrintWriter pw = new PrintWriter(w); e.printStackTrace(pw); return w.toString(); } @@ -1013,12 +1016,12 @@ public abstract class BaseGenericObjectP */ @Override public void run() { - ClassLoader savedClassLoader = + final ClassLoader savedClassLoader = Thread.currentThread().getContextClassLoader(); try { if (factoryClassLoader != null) { // Set the class loader for the factory - ClassLoader cl = factoryClassLoader.get(); + final ClassLoader cl = factoryClassLoader.get(); if (cl == null) { // The pool has been dereferenced and the class loader // GC'd. Cancel this timer so the pool can be GC'd as @@ -1032,9 +1035,9 @@ public abstract class BaseGenericObjectP // Evict from the pool try { evict(); - } catch(Exception e) { + } catch(final Exception e) { swallowException(e); - } catch(OutOfMemoryError oome) { + } catch(final OutOfMemoryError oome) { // Log problem but give evictor thread a chance to continue // in case error is recoverable oome.printStackTrace(System.err); @@ -1042,7 +1045,7 @@ public abstract class BaseGenericObjectP // Re-create idle instances. try { ensureMinIdle(); - } catch (Exception e) { + } catch (final Exception e) { swallowException(e); } } finally { @@ -1067,7 +1070,7 @@ public abstract class BaseGenericObjectP * * @param size number of values to maintain in the cache. */ - public StatsStore(int size) { + public StatsStore(final int size) { this.size = size; values = new AtomicLong[size]; for (int i = 0; i < size; i++) { @@ -1081,7 +1084,7 @@ public abstract class BaseGenericObjectP * * @param value new value to add to the cache. */ - public synchronized void add(long value) { + public synchronized void add(final long value) { values[index].set(value); index++; if (index == size) { @@ -1098,7 +1101,7 @@ public abstract class BaseGenericObjectP double result = 0; int counter = 0; for (int i = 0; i < size; i++) { - long value = values[i].get(); + final long value = values[i].get(); if (value != -1) { counter++; result = result * ((counter - 1) / (double) counter) + @@ -1107,6 +1110,19 @@ public abstract class BaseGenericObjectP } return (long) result; } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("StatsStore [values="); + builder.append(Arrays.toString(values)); + builder.append(", size="); + builder.append(size); + builder.append(", index="); + builder.append(index); + builder.append("]"); + return builder.toString(); + } } /** @@ -1177,7 +1193,7 @@ public abstract class BaseGenericObjectP * * @param instance object to wrap */ - public IdentityWrapper(T instance) { + public IdentityWrapper(final T instance) { this.instance = instance; } @@ -1188,8 +1204,9 @@ public abstract class BaseGenericObjectP @Override @SuppressWarnings("rawtypes") - public boolean equals(Object other) { - return ((IdentityWrapper) other).instance == instance; + public boolean equals(final Object other) { + return other instanceof IdentityWrapper && + ((IdentityWrapper) other).instance == instance; } /** @@ -1198,6 +1215,85 @@ public abstract class BaseGenericObjectP public T getObject() { return instance; } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("IdentityWrapper [instance="); + builder.append(instance); + builder.append("]"); + return builder.toString(); + } + } + + @Override + protected void toStringAppendFields(final StringBuilder builder) { + builder.append("maxTotal="); + builder.append(maxTotal); + builder.append(", blockWhenExhausted="); + builder.append(blockWhenExhausted); + builder.append(", maxWaitMillis="); + builder.append(maxWaitMillis); + builder.append(", lifo="); + builder.append(lifo); + builder.append(", fairness="); + builder.append(fairness); + builder.append(", testOnCreate="); + builder.append(testOnCreate); + builder.append(", testOnBorrow="); + builder.append(testOnBorrow); + builder.append(", testOnReturn="); + builder.append(testOnReturn); + builder.append(", testWhileIdle="); + builder.append(testWhileIdle); + builder.append(", timeBetweenEvictionRunsMillis="); + builder.append(timeBetweenEvictionRunsMillis); + builder.append(", numTestsPerEvictionRun="); + builder.append(numTestsPerEvictionRun); + builder.append(", minEvictableIdleTimeMillis="); + builder.append(minEvictableIdleTimeMillis); + builder.append(", softMinEvictableIdleTimeMillis="); + builder.append(softMinEvictableIdleTimeMillis); + builder.append(", evictionPolicy="); + builder.append(evictionPolicy); + builder.append(", closeLock="); + builder.append(closeLock); + builder.append(", closed="); + builder.append(closed); + builder.append(", evictionLock="); + builder.append(evictionLock); + builder.append(", evictor="); + builder.append(evictor); + builder.append(", evictionIterator="); + builder.append(evictionIterator); + builder.append(", factoryClassLoader="); + builder.append(factoryClassLoader); + builder.append(", oname="); + builder.append(oname); + builder.append(", creationStackTrace="); + builder.append(creationStackTrace); + builder.append(", borrowedCount="); + builder.append(borrowedCount); + builder.append(", returnedCount="); + builder.append(returnedCount); + builder.append(", createdCount="); + builder.append(createdCount); + builder.append(", destroyedCount="); + builder.append(destroyedCount); + builder.append(", destroyedByEvictorCount="); + builder.append(destroyedByEvictorCount); + builder.append(", destroyedByBorrowValidationCount="); + builder.append(destroyedByBorrowValidationCount); + builder.append(", activeTimes="); + builder.append(activeTimes); + builder.append(", idleTimes="); + builder.append(idleTimes); + builder.append(", waitTimes="); + builder.append(waitTimes); + builder.append(", maxBorrowWaitTimeMillis="); + builder.append(maxBorrowWaitTimeMillis); + builder.append(", swallowedExceptionListener="); + builder.append(swallowedExceptionListener); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/BaseObjectPoolConfig.java Fri May 13 20:02:33 2016 @@ -16,6 +16,8 @@ */ package org.apache.tomcat.dbcp.pool2.impl; +import org.apache.tomcat.dbcp.pool2.BaseObject; + /** * Provides the implementation for the common attributes shared by the * sub-classes. New instances of this class will be created using the defaults @@ -25,7 +27,7 @@ package org.apache.tomcat.dbcp.pool2.imp * * @since 2.0 */ -public abstract class BaseObjectPoolConfig implements Cloneable { +public abstract class BaseObjectPoolConfig extends BaseObject implements Cloneable { /** * The default value for the {@code lifo} configuration attribute. @@ -228,7 +230,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getLifo() * @see GenericKeyedObjectPool#getLifo() */ - public void setLifo(boolean lifo) { + public void setLifo(final boolean lifo) { this.lifo = lifo; } @@ -242,7 +244,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getFairness() * @see GenericKeyedObjectPool#getFairness() */ - public void setFairness(boolean fairness) { + public void setFairness(final boolean fairness) { this.fairness = fairness; } @@ -270,7 +272,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getMaxWaitMillis() * @see GenericKeyedObjectPool#getMaxWaitMillis() */ - public void setMaxWaitMillis(long maxWaitMillis) { + public void setMaxWaitMillis(final long maxWaitMillis) { this.maxWaitMillis = maxWaitMillis; } @@ -298,7 +300,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getMinEvictableIdleTimeMillis() * @see GenericKeyedObjectPool#getMinEvictableIdleTimeMillis() */ - public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { + public void setMinEvictableIdleTimeMillis(final long minEvictableIdleTimeMillis) { this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; } @@ -330,7 +332,7 @@ public abstract class BaseObjectPoolConf * @see GenericKeyedObjectPool#getSoftMinEvictableIdleTimeMillis() */ public void setSoftMinEvictableIdleTimeMillis( - long softMinEvictableIdleTimeMillis) { + final long softMinEvictableIdleTimeMillis) { this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis; } @@ -358,7 +360,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getNumTestsPerEvictionRun() * @see GenericKeyedObjectPool#getNumTestsPerEvictionRun() */ - public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { + public void setNumTestsPerEvictionRun(final int numTestsPerEvictionRun) { this.numTestsPerEvictionRun = numTestsPerEvictionRun; } @@ -390,7 +392,7 @@ public abstract class BaseObjectPoolConf * * @since 2.2 */ - public void setTestOnCreate(boolean testOnCreate) { + public void setTestOnCreate(final boolean testOnCreate) { this.testOnCreate = testOnCreate; } @@ -418,7 +420,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getTestOnBorrow() * @see GenericKeyedObjectPool#getTestOnBorrow() */ - public void setTestOnBorrow(boolean testOnBorrow) { + public void setTestOnBorrow(final boolean testOnBorrow) { this.testOnBorrow = testOnBorrow; } @@ -446,7 +448,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getTestOnReturn() * @see GenericKeyedObjectPool#getTestOnReturn() */ - public void setTestOnReturn(boolean testOnReturn) { + public void setTestOnReturn(final boolean testOnReturn) { this.testOnReturn = testOnReturn; } @@ -474,7 +476,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getTestWhileIdle() * @see GenericKeyedObjectPool#getTestWhileIdle() */ - public void setTestWhileIdle(boolean testWhileIdle) { + public void setTestWhileIdle(final boolean testWhileIdle) { this.testWhileIdle = testWhileIdle; } @@ -504,7 +506,7 @@ public abstract class BaseObjectPoolConf * @see GenericKeyedObjectPool#getTimeBetweenEvictionRunsMillis() */ public void setTimeBetweenEvictionRunsMillis( - long timeBetweenEvictionRunsMillis) { + final long timeBetweenEvictionRunsMillis) { this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; } @@ -532,7 +534,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getEvictionPolicyClassName() * @see GenericKeyedObjectPool#getEvictionPolicyClassName() */ - public void setEvictionPolicyClassName(String evictionPolicyClassName) { + public void setEvictionPolicyClassName(final String evictionPolicyClassName) { this.evictionPolicyClassName = evictionPolicyClassName; } @@ -560,7 +562,7 @@ public abstract class BaseObjectPoolConf * @see GenericObjectPool#getBlockWhenExhausted() * @see GenericKeyedObjectPool#getBlockWhenExhausted() */ - public void setBlockWhenExhausted(boolean blockWhenExhausted) { + public void setBlockWhenExhausted(final boolean blockWhenExhausted) { this.blockWhenExhausted = blockWhenExhausted; } @@ -582,7 +584,7 @@ public abstract class BaseObjectPoolConf * @param jmxEnabled The new setting of {@code jmxEnabled} * for this configuration instance */ - public void setJmxEnabled(boolean jmxEnabled) { + public void setJmxEnabled(final boolean jmxEnabled) { this.jmxEnabled = jmxEnabled; } @@ -608,7 +610,7 @@ public abstract class BaseObjectPoolConf * @param jmxNameBase The new setting of {@code jmxNameBase} * for this configuration instance */ - public void setJmxNameBase(String jmxNameBase) { + public void setJmxNameBase(final String jmxNameBase) { this.jmxNameBase = jmxNameBase; } @@ -632,7 +634,43 @@ public abstract class BaseObjectPoolConf * @param jmxNamePrefix The new setting of {@code jmxNamePrefix} * for this configuration instance */ - public void setJmxNamePrefix(String jmxNamePrefix) { + public void setJmxNamePrefix(final String jmxNamePrefix) { this.jmxNamePrefix = jmxNamePrefix; } + + @Override + protected void toStringAppendFields(final StringBuilder builder) { + builder.append("lifo="); + builder.append(lifo); + builder.append(", fairness="); + builder.append(fairness); + builder.append(", maxWaitMillis="); + builder.append(maxWaitMillis); + builder.append(", minEvictableIdleTimeMillis="); + builder.append(minEvictableIdleTimeMillis); + builder.append(", softMinEvictableIdleTimeMillis="); + builder.append(softMinEvictableIdleTimeMillis); + builder.append(", numTestsPerEvictionRun="); + builder.append(numTestsPerEvictionRun); + builder.append(", evictionPolicyClassName="); + builder.append(evictionPolicyClassName); + builder.append(", testOnCreate="); + builder.append(testOnCreate); + builder.append(", testOnBorrow="); + builder.append(testOnBorrow); + builder.append(", testOnReturn="); + builder.append(testOnReturn); + builder.append(", testWhileIdle="); + builder.append(testWhileIdle); + builder.append(", timeBetweenEvictionRunsMillis="); + builder.append(timeBetweenEvictionRunsMillis); + builder.append(", blockWhenExhausted="); + builder.append(blockWhenExhausted); + builder.append(", jmxEnabled="); + builder.append(jmxEnabled); + builder.append(", jmxNamePrefix="); + builder.append(jmxNamePrefix); + builder.append(", jmxNameBase="); + builder.append(jmxNameBase); + } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultEvictionPolicy.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultEvictionPolicy.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultEvictionPolicy.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultEvictionPolicy.java Fri May 13 20:02:33 2016 @@ -40,8 +40,8 @@ import org.apache.tomcat.dbcp.pool2.Pool public class DefaultEvictionPolicy<T> implements EvictionPolicy<T> { @Override - public boolean evict(EvictionConfig config, PooledObject<T> underTest, - int idleCount) { + public boolean evict(final EvictionConfig config, final PooledObject<T> underTest, + final int idleCount) { if ((config.getIdleSoftEvictTime() < underTest.getIdleTimeMillis() && config.getMinIdle() < idleCount) || Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java Fri May 13 20:02:33 2016 @@ -54,7 +54,7 @@ public class DefaultPooledObject<T> impl * * @param object The object to wrap */ - public DefaultPooledObject(T object) { + public DefaultPooledObject(final T object) { this.object = object; } @@ -71,14 +71,13 @@ public class DefaultPooledObject<T> impl @Override public long getActiveTimeMillis() { // Take copies to avoid threading issues - long rTime = lastReturnTime; - long bTime = lastBorrowTime; + final long rTime = lastReturnTime; + final long bTime = lastBorrowTime; if (rTime > bTime) { return rTime - bTime; - } else { - return System.currentTimeMillis() - bTime; } + return System.currentTimeMillis() - bTime; } @Override @@ -122,13 +121,12 @@ public class DefaultPooledObject<T> impl public long getLastUsedTime() { if (object instanceof TrackedUse) { return Math.max(((TrackedUse) object).getLastUsed(), lastUseTime); - } else { - return lastUseTime; } + return lastUseTime; } @Override - public int compareTo(PooledObject<T> other) { + public int compareTo(final PooledObject<T> other) { final long lastActiveDiff = this.getLastReturnTime() - other.getLastReturnTime(); if (lastActiveDiff == 0) { // Make sure the natural ordering is broadly consistent with equals @@ -143,7 +141,7 @@ public class DefaultPooledObject<T> impl @Override public String toString() { - StringBuilder result = new StringBuilder(); + final StringBuilder result = new StringBuilder(); result.append("Object: "); result.append(object.toString()); result.append(", State: "); @@ -166,7 +164,7 @@ public class DefaultPooledObject<T> impl @Override public synchronized boolean endEvictionTest( - Deque<PooledObject<T>> idleQueue) { + final Deque<PooledObject<T>> idleQueue) { if (state == PooledObjectState.EVICTION) { state = PooledObjectState.IDLE; return true; @@ -240,14 +238,14 @@ public class DefaultPooledObject<T> impl } @Override - public void printStackTrace(PrintWriter writer) { + public void printStackTrace(final PrintWriter writer) { boolean written = false; - Exception borrowedByCopy = this.borrowedBy; + final Exception borrowedByCopy = this.borrowedBy; if (borrowedByCopy != null) { borrowedByCopy.printStackTrace(writer); written = true; } - Exception usedByCopy = this.usedBy; + final Exception usedByCopy = this.usedBy; if (usedByCopy != null) { usedByCopy.printStackTrace(writer); written = true; @@ -283,7 +281,7 @@ public class DefaultPooledObject<T> impl } @Override - public void setLogAbandoned(boolean logAbandoned) { + public void setLogAbandoned(final boolean logAbandoned) { this.logAbandoned = logAbandoned; } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObjectInfo.java Fri May 13 20:02:33 2016 @@ -37,7 +37,7 @@ public class DefaultPooledObjectInfo imp * * @param pooledObject The pooled object that this instance will represent */ - public DefaultPooledObjectInfo(PooledObject<?> pooledObject) { + public DefaultPooledObjectInfo(final PooledObject<?> pooledObject) { this.pooledObject = pooledObject; } @@ -48,7 +48,7 @@ public class DefaultPooledObjectInfo imp @Override public String getCreateTimeFormatted() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); + final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); return sdf.format(Long.valueOf(pooledObject.getCreateTime())); } @@ -59,13 +59,13 @@ public class DefaultPooledObjectInfo imp @Override public String getLastBorrowTimeFormatted() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); + final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); return sdf.format(Long.valueOf(pooledObject.getLastBorrowTime())); } @Override public String getLastBorrowTrace() { - StringWriter sw = new StringWriter(); + final StringWriter sw = new StringWriter(); pooledObject.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @@ -77,7 +77,7 @@ public class DefaultPooledObjectInfo imp @Override public String getLastReturnTimeFormatted() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); + final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); return sdf.format(Long.valueOf(pooledObject.getLastReturnTime())); } @@ -96,8 +96,19 @@ public class DefaultPooledObjectInfo imp // TODO Simplify this once getBorrowedCount has been added to PooledObject if (pooledObject instanceof DefaultPooledObject) { return ((DefaultPooledObject<?>) pooledObject).getBorrowedCount(); - } else { - return -1; } + return -1; + } + + /** + * @since 2.4.3 + */ + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("DefaultPooledObjectInfo [pooledObject="); + builder.append(pooledObject); + builder.append("]"); + return builder.toString(); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionConfig.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionConfig.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionConfig.java Fri May 13 20:02:33 2016 @@ -31,7 +31,6 @@ public class EvictionConfig { private final long idleSoftEvictTime; private final int minIdle; - /** * Create a new eviction configuration with the specified parameters. * Instances are immutable. @@ -44,8 +43,8 @@ public class EvictionConfig { * {@link GenericObjectPool#getMinIdle()} or * {@link GenericKeyedObjectPool#getMinIdlePerKey()} */ - public EvictionConfig(long poolIdleEvictTime, long poolIdleSoftEvictTime, - int minIdle) { + public EvictionConfig(final long poolIdleEvictTime, final long poolIdleSoftEvictTime, + final int minIdle) { if (poolIdleEvictTime > 0) { idleEvictTime = poolIdleEvictTime; } else { @@ -96,4 +95,20 @@ public class EvictionConfig { public int getMinIdle() { return minIdle; } + + /** + * @since 2.4 + */ + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("EvictionConfig [idleEvictTime="); + builder.append(idleEvictTime); + builder.append(", idleSoftEvictTime="); + builder.append(idleSoftEvictTime); + builder.append(", minIdle="); + builder.append(minIdle); + builder.append("]"); + return builder.toString(); + } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionTimer.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionTimer.java?rev=1743737&r1=1743736&r2=1743737&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionTimer.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/dbcp/pool2/impl/EvictionTimer.java Fri May 13 20:02:33 2016 @@ -58,11 +58,11 @@ class EvictionTimer { * @param delay Delay in milliseconds before task is executed * @param period Time in milliseconds between executions */ - static synchronized void schedule(TimerTask task, long delay, long period) { + static synchronized void schedule(final TimerTask task, final long delay, final long period) { if (null == _timer) { // Force the new Timer thread to be created with a context class // loader set to the class loader that loaded this library - ClassLoader ccl = AccessController.doPrivileged( + final ClassLoader ccl = AccessController.doPrivileged( new PrivilegedGetTccl()); try { AccessController.doPrivileged(new PrivilegedSetTccl( @@ -80,7 +80,7 @@ class EvictionTimer { * Remove the specified eviction task from the timer. * @param task Task to be scheduled */ - static synchronized void cancel(TimerTask task) { + static synchronized void cancel(final TimerTask task) { task.cancel(); _usageCount--; if (_usageCount == 0) { @@ -109,14 +109,14 @@ class EvictionTimer { private static class PrivilegedSetTccl implements PrivilegedAction<Void> { /** ClassLoader */ - private final ClassLoader cl; + private final ClassLoader classLoader; /** * Create a new PrivilegedSetTccl using the given classloader - * @param cl ClassLoader to use + * @param classLoader ClassLoader to use */ - PrivilegedSetTccl(ClassLoader cl) { - this.cl = cl; + PrivilegedSetTccl(final ClassLoader cl) { + this.classLoader = cl; } /** @@ -124,9 +124,18 @@ class EvictionTimer { */ @Override public Void run() { - Thread.currentThread().setContextClassLoader(cl); + Thread.currentThread().setContextClassLoader(classLoader); return null; } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("PrivilegedSetTccl [classLoader="); + builder.append(classLoader); + builder.append("]"); + return builder.toString(); + } } /** @@ -147,4 +156,14 @@ class EvictionTimer { return new Timer("commons-pool-EvictionTimer", true); } } + + /** + * @since 2.4.3 + */ + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("EvictionTimer []"); + return builder.toString(); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org