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 2020/09/14 14:36:30 UTC

[commons-pool] branch master updated: [POOL-387] Object factory destroy method should carry information on activation context.

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


The following commit(s) were added to refs/heads/master by this push:
     new 6b5d56d  [POOL-387] Object factory destroy method should carry information on activation context.
6b5d56d is described below

commit 6b5d56d3931f0eb6d8458e47f97e13e3b7fb3061
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Sep 14 10:36:20 2020 -0400

    [POOL-387] Object factory destroy method should carry information on
    activation context.
    
    - Add @since 2.9.0
    - Use final
    - Some formatting
---
 pom.xml                                                   |  2 +-
 src/changes/changes.xml                                   |  5 ++++-
 src/main/java/org/apache/commons/pool2/DestroyMode.java   | 15 +++++++--------
 .../java/org/apache/commons/pool2/KeyedObjectPool.java    |  6 +++---
 .../apache/commons/pool2/KeyedPooledObjectFactory.java    |  3 ++-
 src/main/java/org/apache/commons/pool2/ObjectPool.java    |  4 ++--
 .../org/apache/commons/pool2/PooledObjectFactory.java     |  3 ++-
 .../java/org/apache/commons/pool2/impl/EvictionTimer.java |  2 +-
 .../apache/commons/pool2/impl/GenericKeyedObjectPool.java |  5 +++--
 .../org/apache/commons/pool2/impl/GenericObjectPool.java  |  3 ++-
 .../commons/pool2/TestBasePoolableObjectFactory.java      |  2 +-
 .../commons/pool2/impl/TestAbandonedObjectPool.java       |  4 ++--
 .../commons/pool2/impl/TestBaseGenericObjectPool.java     |  2 +-
 .../apache/commons/pool2/impl/TestGenericObjectPool.java  |  4 ++--
 14 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/pom.xml b/pom.xml
index 268e91b..46b369f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>commons-pool2</artifactId>
-  <version>2.8.2-SNAPSHOT</version>
+  <version>2.9.0-SNAPSHOT</version>
   <name>Apache Commons Pool</name>
 
   <inceptionYear>2001</inceptionYear>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c9b38f6..ce2d800 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -43,7 +43,10 @@ The <action> type attribute can be add,update,fix,remove.
     <title>Apache Commons Pool Release Notes</title>
   </properties>
   <body>
-  <release version="2.8.2" date="202Y-MM-DD" description="This is a maintenance release (Java 8).">
+  <release version="2.9.0" date="202Y-MM-DD" description="This is a minor release (Java 8).">
+    <action issue="POOL-387" dev="ggregory" type="update" due-to=" Phil Steitz">
+      Object factory destroy method should carry information on activation context.
+    </action>
     <action dev="ggregory" type="update" due-to="Dependabot">
       Update spotbugs from 4.0.6 to 4.1.2 #37. #41.
     </action>
diff --git a/src/main/java/org/apache/commons/pool2/DestroyMode.java b/src/main/java/org/apache/commons/pool2/DestroyMode.java
index 09b1594..d81ad42 100644
--- a/src/main/java/org/apache/commons/pool2/DestroyMode.java
+++ b/src/main/java/org/apache/commons/pool2/DestroyMode.java
@@ -17,15 +17,14 @@
 package org.apache.commons.pool2;
 
 /**
- * Destroy context provided to object factories via destroyObject methods.
- * Values provide information about why the pool is asking for a pooled object
- * to be destroyed.
+ * Destroy context provided to object factories via destroyObject methods. Values provide information about why the pool
+ * is asking for a pooled object to be destroyed.
  *
- * @since 2.8.2
+ * @since 2.9.0
  */
 public enum DestroyMode {
-                         /** Normal destroy */
-                         NORMAL,
-                         /** Destroy abandoned object */
-                         ABANDONED
+    /** Normal destroy */
+    NORMAL,
+    /** Destroy abandoned object */
+    ABANDONED
 }
diff --git a/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java b/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java
index e47588a..49a156f 100644
--- a/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java
@@ -292,10 +292,10 @@ public interface KeyedObjectPool<K, V> extends Closeable {
      * @param mode destroy activation context provided to the factory
      *
      * @throws Exception if the instance cannot be invalidated
+     * @since 2.9.0
      */
-    default void invalidateObject(K key, V obj, DestroyMode mode)
-                    throws Exception {
-                    invalidateObject(key, obj);
+    default void invalidateObject(final K key, final V obj, final DestroyMode mode) throws Exception {
+        invalidateObject(key, obj);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java b/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java
index 37f14ad..0769357 100644
--- a/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java
@@ -127,8 +127,9 @@ public interface KeyedPooledObjectFactory<K, V> {
      * @see KeyedObjectPool#invalidateObject
      * @see #destroyObject(Object, PooledObject)
      * @see DestroyMode
+     * @since 2.9.0
      */
-    default void destroyObject(K key, PooledObject<V> p, DestroyMode mode) throws Exception {
+    default void destroyObject(final K key, final PooledObject<V> p, final DestroyMode mode) throws Exception {
         destroyObject(key, p);
     }
 
diff --git a/src/main/java/org/apache/commons/pool2/ObjectPool.java b/src/main/java/org/apache/commons/pool2/ObjectPool.java
index dcc384d..eccc509 100644
--- a/src/main/java/org/apache/commons/pool2/ObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/ObjectPool.java
@@ -201,9 +201,9 @@ public interface ObjectPool<T> extends Closeable {
      * @param mode destroy activation context provided to the factory
      *
      * @throws Exception if the instance cannot be invalidated
+     * @since 2.9.0
      */
-    default void invalidateObject(T obj, DestroyMode mode)
-                    throws Exception {
+    default void invalidateObject(final T obj, final DestroyMode mode) throws Exception {
         invalidateObject(obj);
     }
 
diff --git a/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java b/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java
index d16e3c1..71128a6 100644
--- a/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java
@@ -120,8 +120,9 @@ public interface PooledObjectFactory<T> {
    * @see ObjectPool#invalidateObject
    * @see #destroyObject(PooledObject)
    * @see DestroyMode
+   * @since 2.9.0
    */
-  default void destroyObject(PooledObject<T> p, DestroyMode mode) throws Exception {
+  default void destroyObject(final PooledObject<T> p, final DestroyMode mode) throws Exception {
       destroyObject(p);
   }
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java b/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
index 72d8333..554af96 100644
--- a/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
+++ b/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
@@ -203,7 +203,7 @@ class EvictionTimer {
          *
          * @param ref the reference to track.
          */
-        private WeakRunner(WeakReference<Runnable> ref) {
+        private WeakRunner(final WeakReference<Runnable> ref) {
            this.ref = ref;
         }
 
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 ef661eb..1380f8d 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
@@ -577,9 +577,10 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
      *                               object
      * @throws IllegalStateException if obj does not belong to the pool
      *                               under the given key
+     * @since 2.9.0
      */
     @Override
-    public void invalidateObject(final K key, final T obj, DestroyMode mode) throws Exception {
+    public void invalidateObject(final K key, final T obj, final DestroyMode mode) throws Exception {
 
         final ObjectDeque<T> objectDeque = poolMap.get(key);
 
@@ -1103,7 +1104,7 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
      * @return {@code true} if the object was destroyed, otherwise {@code false}
      * @throws Exception If the object destruction failed
      */
-    private boolean destroy(final K key, final PooledObject<T> toDestroy, final boolean always, DestroyMode mode)
+    private boolean destroy(final K key, final PooledObject<T> toDestroy, final boolean always, final DestroyMode mode)
             throws Exception {
 
         final ObjectDeque<T> objectDeque = register(key);
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 e791ad7..dd4671c 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
@@ -629,9 +629,10 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T>
      * @throws Exception             if an exception occurs destroying the
      *                               object
      * @throws IllegalStateException if obj does not belong to this pool
+     * @since 2.9.0
      */
     @Override
-    public void invalidateObject(final T obj, DestroyMode mode) throws Exception {
+    public void invalidateObject(final T obj, final DestroyMode mode) throws Exception {
         final PooledObject<T> p = allObjects.get(new IdentityWrapper<>(obj));
         if (p == null) {
             if (isAbandonedConfig()) {
diff --git a/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java b/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
index b19d934..cdb0bc7 100644
--- a/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
@@ -62,7 +62,7 @@ public class TestBasePoolableObjectFactory {
             return new AtomicInteger(0);
         }
         @Override 
-        public void destroyObject(PooledObject<AtomicInteger> p, DestroyMode mode){
+        public void destroyObject(final PooledObject<AtomicInteger> p, final DestroyMode mode){
             if (mode.equals(DestroyMode.ABANDONED)) {
                 p.getObject().incrementAndGet();
             }
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
index 6f0634b..222c725 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
@@ -390,7 +390,7 @@ public class TestAbandonedObjectPool {
         }
         
         @Override
-        public void destroyObject(final PooledObject<PooledTestObject> obj, DestroyMode mode) throws Exception {
+        public void destroyObject(final PooledObject<PooledTestObject> obj, final DestroyMode mode) throws Exception {
             obj.getObject().setActive(false);
             // while destroying instances, yield control to other threads
             // helps simulate threading errors
@@ -423,7 +423,7 @@ class PooledTestObject implements TrackedUse {
         return active;
     }
 
-    public void destroy(DestroyMode mode) {
+    public void destroy(final DestroyMode mode) {
         destroyed = true;
         if (mode.equals(DestroyMode.ABANDONED)) {
             detached = true;
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
index adb5695..8c9f1fb 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
@@ -95,7 +95,7 @@ public class TestBaseGenericObjectPool {
         }
 
         for (int i = 0; i < 1000; i++) {
-            GenericObjectPool<AtomicInteger> nonEvictingPool = new GenericObjectPool<>(factory);
+            final GenericObjectPool<AtomicInteger> nonEvictingPool = new GenericObjectPool<>(factory);
             nonEvictingPool.close();
         }
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
index a31c3fd..7fa8519 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
@@ -2915,13 +2915,13 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
      */
     @Test
     public void testAbandonedPool() throws Exception {
-        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
+        final GenericObjectPoolConfig config = new GenericObjectPoolConfig();
         config.setJmxEnabled(false);
         GenericObjectPool<String> abandoned = new GenericObjectPool<>(simpleFactory, config);
         abandoned.setTimeBetweenEvictionRunsMillis(100); // Starts evictor
 
         // This is ugly, but forces gc to hit the pool
-        WeakReference<GenericObjectPool> ref = new WeakReference<>(abandoned);
+        final WeakReference<GenericObjectPool> ref = new WeakReference<>(abandoned);
         abandoned = null;
         while (ref.get() != null) {
             System.gc();