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();