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 995d7ddec6046b8aadab1372c854793c33a23a15 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Jul 14 15:24:32 2023 -0400 Use a factory method --- .../commons/pool2/impl/BaseGenericObjectPool.java | 17 ++++++++++++++--- .../commons/pool2/impl/GenericKeyedObjectPool.java | 4 ++-- .../apache/commons/pool2/impl/GenericObjectPool.java | 4 ++-- 3 files changed, 18 insertions(+), 7 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 6b761244..d838e392 100644 --- a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java @@ -203,21 +203,32 @@ public abstract class BaseGenericObjectPool<T, E extends Exception> extends Base * objects under management using maps keyed on the objects. This wrapper * class ensures that objects can work as hash keys. * - * @param <T> type of objects in the pool + * @param <T> type of objects in the pool. */ static class IdentityWrapper<T> { + /** Wrapped object */ private final T instance; + /** + * Constructs a wrapper for the object in the {@link PooledObject}. + * + * @param <T> type of objects in the {@link PooledObject}. + * @param pooledObject contains the object to wrap. + * @return a new instance wrapping the object in the {@link PooledObject}. + */ + static <T> IdentityWrapper<T> on(final PooledObject<T> pooledObject) { + return new IdentityWrapper<>(pooledObject.getObject()); + } /** * Constructs a wrapper for an instance. * - * @param instance object to wrap + * @param instance object to wrap. */ public IdentityWrapper(final T instance) { this.instance = instance; } - + @Override @SuppressWarnings("rawtypes") public boolean equals(final Object other) { diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java index e00e60ac..ce2177ae 100644 --- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java @@ -831,7 +831,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } createdCount.incrementAndGet(); - objectDeque.getAllObjects().put(new IdentityWrapper<>(p.getObject()), p); + objectDeque.getAllObjects().put(IdentityWrapper.on(p), p); return p; } @@ -895,7 +895,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } } if (isIdle || always) { - objectDeque.getAllObjects().remove(new IdentityWrapper<>(toDestroy.getObject())); + objectDeque.getAllObjects().remove(IdentityWrapper.on(toDestroy)); toDestroy.invalidate(); try { diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java index dbc1ef7a..d0057f40 100644 --- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java @@ -600,7 +600,7 @@ public class GenericObjectPool<T, E extends Exception> extends BaseGenericObject } createdCount.incrementAndGet(); - allObjects.put(new IdentityWrapper<>(p.getObject()), p); + allObjects.put(IdentityWrapper.on(p), p); return p; } @@ -616,7 +616,7 @@ public class GenericObjectPool<T, E extends Exception> extends BaseGenericObject private void destroy(final PooledObject<T> toDestroy, final DestroyMode destroyMode) throws E { toDestroy.invalidate(); idleObjects.remove(toDestroy); - allObjects.remove(new IdentityWrapper<>(toDestroy.getObject())); + allObjects.remove(IdentityWrapper.on(toDestroy)); try { factory.destroyObject(toDestroy, destroyMode); } finally {