This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch POOL_2_X
in repository https://gitbox.apache.org/repos/asf/commons-pool.git


The following commit(s) were added to refs/heads/POOL_2_X by this push:
     new bf69b154 Internal refactoring
bf69b154 is described below

commit bf69b154a7ba6e6d4d9b17a5b26f33dc6c4ebac1
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Tue Jun 10 18:21:24 2025 -0400

    Internal refactoring
---
 .../commons/pool2/impl/BaseGenericObjectPool.java  | 28 +++++++++++++++-------
 .../commons/pool2/impl/GenericKeyedObjectPool.java |  4 ++--
 .../commons/pool2/impl/GenericObjectPool.java      |  4 ++--
 3 files changed, 24 insertions(+), 12 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 44a93c99..a12cba72 100644
--- a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
@@ -205,41 +205,53 @@ public abstract class BaseGenericObjectPool<T> extends 
BaseObject implements Aut
      * @param <T> type of objects in the pool
      */
     static class IdentityWrapper<T> {
+
+        /**
+         * Creates a new instance for the object inside a {@link PooledObject}.
+         *
+         * @param <T> The type of the object in the {@link PooledObject}.
+         * @param p The {@link PooledObject}.
+         * @return a new instance.
+         */
+        static <T> IdentityWrapper<T> unwrap(final PooledObject<T> p) {
+            return new IdentityWrapper<>(p.getObject());
+        }
+
         /** Wrapped object */
-        private final T instance;
+        private final T object;
 
         /**
          * Constructs a wrapper for an instance.
          *
-         * @param instance object to wrap
+         * @param object object to wrap
          */
-        IdentityWrapper(final T instance) {
-            this.instance = instance;
+        IdentityWrapper(final T object) {
+            this.object = object;
         }
 
         @Override
         @SuppressWarnings("rawtypes")
         public boolean equals(final Object other) {
-            return other instanceof IdentityWrapper && ((IdentityWrapper) 
other).instance == instance;
+            return other instanceof IdentityWrapper && ((IdentityWrapper) 
other).object == object;
         }
 
         /**
          * @return the wrapped object
          */
         T getObject() {
-            return instance;
+            return object;
         }
 
         @Override
         public int hashCode() {
-            return System.identityHashCode(instance);
+            return System.identityHashCode(object);
         }
 
         @Override
         public String toString() {
             final StringBuilder builder = new StringBuilder();
             builder.append("IdentityWrapper [instance=");
-            builder.append(instance);
+            builder.append(object);
             builder.append("]");
             return builder.toString();
         }
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 4895f2ca..5fe17698 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
@@ -896,7 +896,7 @@ public class GenericKeyedObjectPool<K, T> extends 
BaseGenericObjectPool<T>
         }
 
         createdCount.incrementAndGet();
-        objectDeque.getAllObjects().put(new IdentityWrapper<>(p.getObject()), 
p);
+        objectDeque.getAllObjects().put(IdentityWrapper.unwrap(p), p);
         return p;
     }
 
@@ -969,7 +969,7 @@ public class GenericKeyedObjectPool<K, T> extends 
BaseGenericObjectPool<T>
                 }
             }
             if (isIdle || always) {
-                objectDeque.getAllObjects().remove(new 
IdentityWrapper<>(toDestroy.getObject()));
+                
objectDeque.getAllObjects().remove(IdentityWrapper.unwrap(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 cb6941cc..de04db23 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
@@ -580,7 +580,7 @@ public class GenericObjectPool<T> extends 
BaseGenericObjectPool<T>
         }
 
         createdCount.incrementAndGet();
-        allObjects.put(new IdentityWrapper<>(p.getObject()), p);
+        allObjects.put(IdentityWrapper.unwrap(p), p);
         return p;
     }
 
@@ -595,7 +595,7 @@ public class GenericObjectPool<T> extends 
BaseGenericObjectPool<T>
     private void destroy(final PooledObject<T> toDestroy, final DestroyMode 
destroyMode) throws Exception {
         toDestroy.invalidate();
         idleObjects.remove(toDestroy);
-        allObjects.remove(new IdentityWrapper<>(toDestroy.getObject()));
+        allObjects.remove(IdentityWrapper.unwrap(toDestroy));
         try {
             factory.destroyObject(toDestroy, destroyMode);
         } finally {

Reply via email to