This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-pool.git
commit 80652305f97f87c611d25d0d13f4f96545c9ab75 Author: Gary Gregory <[email protected]> AuthorDate: Tue Jun 29 09:27:11 2021 -0400 Change new method from protected to package private to reduce client API footprint. --- .../commons/pool2/impl/BaseGenericObjectPool.java | 44 ++++++++++++---------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java index c0dbe12..f5efecb 100644 --- a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java @@ -447,6 +447,27 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { public abstract void close(); /** + * Creates a list of pooled objects to remove based on their state. + * @param abandonedConfig The abandoned configuration. + * @param allObjects PooledObject instances to consider. + * @return a list of pooled objects to remove based on their state. + */ + ArrayList<PooledObject<T>> createRemoveList(final AbandonedConfig abandonedConfig, final Map<IdentityWrapper<T>, PooledObject<T>> allObjects) { + final Instant timeout = Instant.now().minus(abandonedConfig.getRemoveAbandonedTimeoutDuration()); + final ArrayList<PooledObject<T>> remove = new ArrayList<>(); + allObjects.values().forEach(pooledObject -> { + synchronized (pooledObject) { + if (pooledObject.getState() == PooledObjectState.ALLOCATED && + pooledObject.getLastUsedInstant().compareTo(timeout) <= 0) { + pooledObject.markAbandoned(); + remove.add(pooledObject); + } + } + }); + return remove; + } + + /** * Tries to ensure that the configured minimum number of idle instances are * available in the pool. * @throws Exception if an error occurs creating idle instances @@ -1057,6 +1078,8 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { return timeBetweenEvictionRuns.toMillis(); } + // Monitoring (primarily JMX) related methods + /** * Gets whether or not abandoned object removal is configured for this pool. * @@ -1068,8 +1091,6 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { return abandonedConfig != null; } - // Monitoring (primarily JMX) related methods - /** * Has this pool instance been closed. * @return {@code true} when this pool has been closed. @@ -1481,6 +1502,8 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { this.softMinEvictableIdleTime = PoolImplUtils.nonNull(softMinEvictableIdleTime, BaseObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME); } + // Inner classes + /** * Sets the minimum amount of time an object may sit idle in the pool * before it is eligible for eviction by the idle object evictor (if any - @@ -1504,8 +1527,6 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { setSoftMinEvictableIdleTime(Duration.ofMillis(softMinEvictableIdleTimeMillis)); } - // Inner classes - /** * The listener used (if any) to receive notifications of exceptions * unavoidably swallowed by the pool. @@ -1792,20 +1813,5 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { activeTimes.add(activeTime); } - protected ArrayList<PooledObject<T>> createRemoveList(final AbandonedConfig abandonedConfig, final Map<IdentityWrapper<T>, PooledObject<T>> allObjects) { - final Instant timeout = Instant.now().minus(abandonedConfig.getRemoveAbandonedTimeoutDuration()); - final ArrayList<PooledObject<T>> remove = new ArrayList<>(); - allObjects.values().forEach(pooledObject -> { - synchronized (pooledObject) { - if (pooledObject.getState() == PooledObjectState.ALLOCATED && - pooledObject.getLastUsedInstant().compareTo(timeout) <= 0) { - pooledObject.markAbandoned(); - remove.add(pooledObject); - } - } - }); - return remove; - } - }
