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

psteitz 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 8f46cde7 Remove sync lock in addObject.
8f46cde7 is described below

commit 8f46cde7835d29eaeae3b2c77488d9ccf5101f3c
Author: Phil Steitz <[email protected]>
AuthorDate: Sat Dec 27 10:55:24 2025 -0700

    Remove sync lock in addObject.
---
 .../org/apache/commons/pool2/impl/GenericObjectPool.java  | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

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 f193b0bf..c6010506 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
@@ -212,16 +212,11 @@ public class GenericObjectPool<T> extends 
BaseGenericObjectPool<T>
         if (factory == null) {
             throw new IllegalStateException("Cannot add objects without a 
factory.");
         }
-        synchronized (makeObjectCountLock) {
-            final int localMaxTotal = getMaxTotal();
-            final int localMaxIdle = getMaxIdle();
-            if (localMaxIdle >= 0 && getNumIdle() >= localMaxIdle) {
-                // Pool already has maxIdle idle objects or maxIdle is 0.
-                return;
-            }
-            if (localMaxTotal < 0 || createCount.get() < localMaxTotal) {
-                addIdleObject(create(getMaxWaitDuration()));
-            }
+        final int localMaxIdle = getMaxIdle();
+        final int localMaxTotal = getMaxTotal();
+        if ((localMaxIdle < 0 || getNumIdle() < localMaxIdle) &&
+                (localMaxTotal < 0 || createCount.get() < localMaxTotal)) {
+            addIdleObject(create(getMaxWaitDuration()));
         }
     }
 

Reply via email to