You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/07/14 18:38:23 UTC

[commons-pool] branch master updated (7621c40e -> 12ed6bee)

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

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


    from 7621c40e Use modern JUnit API
     new a972856f Rename abstract test classes for consistency
     new cec921d2 Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectToString()
     new 1b1ed4d9 Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectType()
     new 12ed6bee Better use of Map API

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/changes/changes.xml                                        |  6 ++++++
 src/conf/findbugs-exclude-filter.xml                           |  4 ++--
 .../org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java |  5 +++--
 .../org/apache/commons/pool2/impl/GenericKeyedObjectPool.java  |  2 +-
 ...stKeyedObjectPool.java => AbstractTestKeyedObjectPool.java} | 10 +++++-----
 .../pool2/{TestObjectPool.java => AbstractTestObjectPool.java} |  2 +-
 src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java |  2 +-
 .../apache/commons/pool2/impl/TestGenericKeyedObjectPool.java  |  4 ++--
 ...ObjectPool.java => AbstractTestProxiedKeyedObjectPool.java} |  2 +-
 ...oxiedObjectPool.java => AbstractTestProxiedObjectPool.java} |  2 +-
 .../pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java  |  2 +-
 .../pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java    |  2 +-
 .../pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java       |  2 +-
 .../commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java |  2 +-
 14 files changed, 27 insertions(+), 20 deletions(-)
 rename src/test/java/org/apache/commons/pool2/{TestKeyedObjectPool.java => AbstractTestKeyedObjectPool.java} (98%)
 rename src/test/java/org/apache/commons/pool2/{TestObjectPool.java => AbstractTestObjectPool.java} (99%)
 rename src/test/java/org/apache/commons/pool2/proxy/{BaseTestProxiedKeyedObjectPool.java => AbstractTestProxiedKeyedObjectPool.java} (99%)
 rename src/test/java/org/apache/commons/pool2/proxy/{BaseTestProxiedObjectPool.java => AbstractTestProxiedObjectPool.java} (99%)


[commons-pool] 03/04: Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectType()

Posted by gg...@apache.org.
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 1b1ed4d92479bd07d95ea87cfca56f3a044db4fc
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 14 14:36:57 2023 -0400

    Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectType()
---
 src/changes/changes.xml                                             | 6 ++++++
 .../java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java | 3 ++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5b73ce28..14ed56aa 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -89,6 +89,12 @@ The <action> type attribute can be add,update,fix,remove.
     <action type="fix" dev="ggregory" due-to="step-security-bot, Gary Gregory">
       [StepSecurity] ci: Harden GitHub Actions #225.
     </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectToString().
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectType().
+    </action>
     <!-- ADD -->
     <action dev="ggregory" type="add" due-to="Gary Gregory">
       Add PooledObject.getFullDuration().
diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java b/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
index bbe579d4..9caf1399 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
+++ b/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
@@ -95,7 +95,8 @@ public class DefaultPooledObjectInfo implements DefaultPooledObjectInfoMBean {
 
     @Override
     public String getPooledObjectType() {
-        return pooledObject.getObject().getClass().getName();
+        final Object object = pooledObject.getObject();
+        return object != null ? object.getClass().getName() : null;
     }
 
     private String getTimeMillisFormatted(final long millis) {


[commons-pool] 01/04: Rename abstract test classes for consistency

Posted by gg...@apache.org.
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 a972856f6204f0e81716ec7f6bcc3f02cc316084
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 14 14:28:27 2023 -0400

    Rename abstract test classes for consistency
---
 src/conf/findbugs-exclude-filter.xml                           |  4 ++--
 ...stKeyedObjectPool.java => AbstractTestKeyedObjectPool.java} | 10 +++++-----
 .../pool2/{TestObjectPool.java => AbstractTestObjectPool.java} |  2 +-
 src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java |  2 +-
 .../apache/commons/pool2/impl/TestGenericKeyedObjectPool.java  |  4 ++--
 ...ObjectPool.java => AbstractTestProxiedKeyedObjectPool.java} |  2 +-
 ...oxiedObjectPool.java => AbstractTestProxiedObjectPool.java} |  2 +-
 .../pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java  |  2 +-
 .../pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java    |  2 +-
 .../pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java       |  2 +-
 .../commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java |  2 +-
 11 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/conf/findbugs-exclude-filter.xml b/src/conf/findbugs-exclude-filter.xml
index d40ac06a..40e75c3f 100644
--- a/src/conf/findbugs-exclude-filter.xml
+++ b/src/conf/findbugs-exclude-filter.xml
@@ -99,8 +99,8 @@
   <Match>
     <!-- Generating a new object is a deliberate choice -->
     <Or>
-      <Class name="org.apache.commons.pool2.TestKeyedObjectPool" />
-      <Class name="org.apache.commons.pool2.TestObjectPool" />
+      <Class name="org.apache.commons.pool2.AbstractTestKeyedObjectPool" />
+      <Class name="org.apache.commons.pool2.AbstractTestObjectPool" />
     </Or>
     <Bug pattern="DM_NUMBER_CTOR" />
   </Match>
diff --git a/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java b/src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java
index bcdde1a4..cbd18860 100644
--- a/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test;
 /**
  * Abstract test case for {@link ObjectPool} implementations.
  */
-public abstract class TestKeyedObjectPool {
+public abstract class AbstractTestKeyedObjectPool {
 
     protected static class FailingKeyedPooledObjectFactory implements KeyedPooledObjectFactory<Object, Object, PrivateException> {
         private final List<MethodCall> methodCalls = new ArrayList<>();
@@ -590,7 +590,7 @@ public abstract class TestKeyedObjectPool {
         // fails again for the new one.
         expectedMethods.add(new MethodCall("makeObject", KEY).returned(ONE));
         expectedMethods.add(new MethodCall("activateObject", KEY, ONE));
-        TestObjectPool.removeDestroyObjectCall(factory.getMethodCalls()); // The exact timing of destroyObject is flexible here.
+        AbstractTestObjectPool.removeDestroyObjectCall(factory.getMethodCalls()); // The exact timing of destroyObject is flexible here.
         assertEquals(expectedMethods, factory.getMethodCalls());
 
         // when validateObject fails in borrowObject, a new object should be borrowed/created
@@ -609,7 +609,7 @@ public abstract class TestKeyedObjectPool {
         expectedMethods.add(new MethodCall("makeObject", KEY).returned(ONE));
         expectedMethods.add(new MethodCall("activateObject", KEY, ONE));
         expectedMethods.add(new MethodCall("validateObject", KEY, ONE));
-        TestObjectPool.removeDestroyObjectCall(factory.getMethodCalls());
+        AbstractTestObjectPool.removeDestroyObjectCall(factory.getMethodCalls());
         assertEquals(expectedMethods, factory.getMethodCalls());
         pool.close();
     }
@@ -690,7 +690,7 @@ public abstract class TestKeyedObjectPool {
         factory.setDestroyObjectFail(true);
         assertThrows(PrivateException.class, () -> pool.invalidateObject(KEY, obj2), "Expecting destroy exception to propagate");
         Thread.sleep(250); // could be defered
-        TestObjectPool.removeDestroyObjectCall(factory.getMethodCalls());
+        AbstractTestObjectPool.removeDestroyObjectCall(factory.getMethodCalls());
         assertEquals(expectedMethods, factory.getMethodCalls());
         pool.close();
     }
@@ -732,7 +732,7 @@ public abstract class TestKeyedObjectPool {
         factory.setPassivateObjectFail(true);
         pool.returnObject(KEY, obj);
         expectedMethods.add(new MethodCall("passivateObject", KEY, obj));
-        TestObjectPool.removeDestroyObjectCall(factory.getMethodCalls()); // The exact timing of destroyObject is flexible here.
+        AbstractTestObjectPool.removeDestroyObjectCall(factory.getMethodCalls()); // The exact timing of destroyObject is flexible here.
         assertEquals(expectedMethods, factory.getMethodCalls());
         assertEquals(1, pool.getNumIdle(KEY));   // Not added
         assertEquals(1, pool.getNumActive(KEY)); // But not active
diff --git a/src/test/java/org/apache/commons/pool2/TestObjectPool.java b/src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/TestObjectPool.java
rename to src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java
index d4776229..22622457 100644
--- a/src/test/java/org/apache/commons/pool2/TestObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test;
 /**
  * Abstract test case for {@link ObjectPool} implementations.
  */
-public abstract class TestObjectPool {
+public abstract class AbstractTestObjectPool {
 
     private static void clear(final MethodCallPoolableObjectFactory factory, final List<MethodCall> expectedMethods) {
         factory.getMethodCalls().clear();
diff --git a/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java b/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java
index 28febb9b..37621703 100644
--- a/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java
@@ -25,7 +25,7 @@ import org.junit.jupiter.api.Test;
 
 /**
  */
-public class TestBaseObjectPool extends TestObjectPool {
+public class TestBaseObjectPool extends AbstractTestObjectPool {
 
     private static class TestObjectPool extends BaseObjectPool<Object, RuntimeException> {
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
index c10dcdb4..3e60202a 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
@@ -60,7 +60,7 @@ import org.apache.commons.pool2.KeyedObjectPool;
 import org.apache.commons.pool2.KeyedPooledObjectFactory;
 import org.apache.commons.pool2.PooledObject;
 import org.apache.commons.pool2.TestException;
-import org.apache.commons.pool2.TestKeyedObjectPool;
+import org.apache.commons.pool2.AbstractTestKeyedObjectPool;
 import org.apache.commons.pool2.VisitTracker;
 import org.apache.commons.pool2.VisitTrackerFactory;
 import org.apache.commons.pool2.Waiter;
@@ -74,7 +74,7 @@ import org.junit.jupiter.params.provider.EnumSource;
 
 /**
  */
-public class TestGenericKeyedObjectPool extends TestKeyedObjectPool {
+public class TestGenericKeyedObjectPool extends AbstractTestKeyedObjectPool {
 
     private static class DaemonThreadFactory implements ThreadFactory {
         @Override
diff --git a/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedKeyedObjectPool.java b/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java
index 4ff3f7c2..52bd1f39 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java
@@ -38,7 +38,7 @@ import org.junit.jupiter.api.Test;
 
 
 
-public abstract class BaseTestProxiedKeyedObjectPool {
+public abstract class AbstractTestProxiedKeyedObjectPool {
 
     private static class TestKeyedObjectFactory extends BaseKeyedPooledObjectFactory<String, TestObject, RuntimeException> {
 
diff --git a/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java b/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java
rename to src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java
index cfdf886d..55682d1d 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/BaseTestProxiedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java
@@ -37,7 +37,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 
-public abstract class BaseTestProxiedObjectPool {
+public abstract class AbstractTestProxiedObjectPool {
 
     protected interface TestObject {
         String getData();
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
index 665dd6ca..2f6e599f 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
@@ -17,7 +17,7 @@
 package org.apache.commons.pool2.proxy;
 
 public class TestProxiedKeyedObjectPoolWithCglibProxy extends
-        BaseTestProxiedKeyedObjectPool {
+        AbstractTestProxiedKeyedObjectPool {
 
     @Override
     protected ProxySource<TestObject> getproxySource() {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
index 56d33e7c..d5c4d82f 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
@@ -17,7 +17,7 @@
 package org.apache.commons.pool2.proxy;
 
 public class TestProxiedKeyedObjectPoolWithJdkProxy
-        extends BaseTestProxiedKeyedObjectPool {
+        extends AbstractTestProxiedKeyedObjectPool {
 
     @Override
     protected ProxySource<TestObject> getproxySource() {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java
index 60ff0015..2df83d0a 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java
@@ -17,7 +17,7 @@
 package org.apache.commons.pool2.proxy;
 
 public class TestProxiedObjectPoolWithCglibProxy extends
-        BaseTestProxiedObjectPool {
+        AbstractTestProxiedObjectPool {
 
     @Override
     protected ProxySource<TestObject> getproxySource() {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java
index cda67478..ec6bf618 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java
+++ b/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java
@@ -17,7 +17,7 @@
 package org.apache.commons.pool2.proxy;
 
 public class TestProxiedObjectPoolWithJdkProxy
-        extends BaseTestProxiedObjectPool {
+        extends AbstractTestProxiedObjectPool {
 
     @Override
     protected ProxySource<TestObject> getproxySource() {


[commons-pool] 02/04: Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectToString()

Posted by gg...@apache.org.
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 cec921d277c5e1a846981464d956a972678dd874
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 14 14:36:19 2023 -0400

    Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectToString()
---
 .../java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java b/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
index 4c06ddfe..bbe579d4 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
+++ b/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
@@ -90,7 +90,7 @@ public class DefaultPooledObjectInfo implements DefaultPooledObjectInfoMBean {
 
     @Override
     public String getPooledObjectToString() {
-        return pooledObject.getObject().toString();
+        return Objects.toString(pooledObject.getObject(), null);
     }
 
     @Override


[commons-pool] 04/04: Better use of Map API

Posted by gg...@apache.org.
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 12ed6beee868d29d5a95484fbd34f20efce3996e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 14 14:38:18 2023 -0400

    Better use of Map API
---
 src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 18b507e4..e00e60ac 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
@@ -614,7 +614,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener
      */
     public void clear(final K key, final boolean reuseCapacity) {
         // Return immediately if there is no pool under this key.
-        if (poolMap.get(key) == null) {
+        if (!poolMap.containsKey(key)) {
             return;
         }
         final ObjectDeque<T> objectDeque = register(key);