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 2026/01/20 22:04:15 UTC
(commons-pool) branch POOL_2_X updated (9b6a3404 -> 864bf0c4)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a change to branch POOL_2_X
in repository https://gitbox.apache.org/repos/asf/commons-pool.git
from 9b6a3404 Add EvictionConfig.isEvictionThread()
new 4be1727c Reduce vertical whitespace
new 864bf0c4 Add DefaultPooledObjectInfo.getPooledObject().
The 2 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 | 1 +
.../pool2/impl/DefaultPooledObjectInfo.java | 11 +++++
.../pool2/impl/TestDefaultPooledObjectInfo.java | 49 +++++++---------------
3 files changed, 27 insertions(+), 34 deletions(-)
(commons-pool) 01/02: Reduce vertical whitespace
Posted by gg...@apache.org.
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
commit 4be1727c6a7f718d88de6aed6925e1a32cae26ed
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Jan 20 21:55:29 2026 +0000
Reduce vertical whitespace
---
.../pool2/impl/TestDefaultPooledObjectInfo.java | 38 +++-------------------
1 file changed, 4 insertions(+), 34 deletions(-)
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java b/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
index 8b86314d..f8342200 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
@@ -14,6 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.commons.pool2.impl;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -30,20 +31,15 @@ class TestDefaultPooledObjectInfo {
@Test
void testGetLastBorrowTrace() throws Exception {
final AbandonedConfig abandonedConfig = new AbandonedConfig();
-
abandonedConfig.setRemoveAbandonedOnBorrow(true);
abandonedConfig.setRemoveAbandonedTimeout(TestConstants.ONE_SECOND_DURATION);
abandonedConfig.setLogAbandoned(true);
- try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory(),
- new GenericObjectPoolConfig<>(), abandonedConfig)) {
-
+ try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory(), new GenericObjectPoolConfig<>(), abandonedConfig)) {
pool.borrowObject();
// pool.returnObject(s1); // Object not returned, causes abandoned object created exception
-
final Set<DefaultPooledObjectInfo> strings = pool.listAllObjects();
final DefaultPooledObjectInfo s1Info = strings.iterator().next();
final String lastBorrowTrace = s1Info.getLastBorrowTrace();
-
assertTrue(lastBorrowTrace.startsWith("Pooled object created"));
}
}
@@ -51,15 +47,10 @@ class TestDefaultPooledObjectInfo {
@Test
void testGetPooledObjectToString() throws Exception {
try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory())) {
-
final String s1 = pool.borrowObject();
-
final Set<DefaultPooledObjectInfo> strings = pool.listAllObjects();
-
assertEquals(1, strings.size());
-
final DefaultPooledObjectInfo s1Info = strings.iterator().next();
-
assertEquals(s1, s1Info.getPooledObjectToString());
}
}
@@ -67,15 +58,10 @@ class TestDefaultPooledObjectInfo {
@Test
void testGetPooledObjectType() throws Exception {
try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory())) {
-
pool.borrowObject();
-
final Set<DefaultPooledObjectInfo> strings = pool.listAllObjects();
-
assertEquals(1, strings.size());
-
final DefaultPooledObjectInfo s1Info = strings.iterator().next();
-
assertEquals(String.class.getName(), s1Info.getPooledObjectType());
}
}
@@ -83,47 +69,31 @@ class TestDefaultPooledObjectInfo {
@Test
void testTiming() throws Exception {
try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory())) {
-
final long t1Millis = System.currentTimeMillis();
-
Thread.sleep(50);
final String s1 = pool.borrowObject();
Thread.sleep(50);
-
final long t2Millis = System.currentTimeMillis();
-
Thread.sleep(50);
pool.returnObject(s1);
Thread.sleep(50);
-
final long t3Millis = System.currentTimeMillis();
-
Thread.sleep(50);
pool.borrowObject();
Thread.sleep(50);
-
final long t4Millis = System.currentTimeMillis();
-
final Set<DefaultPooledObjectInfo> strings = pool.listAllObjects();
-
assertEquals(1, strings.size());
-
final DefaultPooledObjectInfo s1Info = strings.iterator().next();
-
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
-
assertTrue(s1Info.getCreateTime() > t1Millis);
assertEquals(sdf.format(Long.valueOf(s1Info.getCreateTime())), s1Info.getCreateTimeFormatted());
assertTrue(s1Info.getCreateTime() < t2Millis);
-
assertTrue(s1Info.getLastReturnTime() > t2Millis);
- assertEquals(sdf.format(Long.valueOf(s1Info.getLastReturnTime())),
- s1Info.getLastReturnTimeFormatted());
+ assertEquals(sdf.format(Long.valueOf(s1Info.getLastReturnTime())), s1Info.getLastReturnTimeFormatted());
assertTrue(s1Info.getLastReturnTime() < t3Millis);
-
assertTrue(s1Info.getLastBorrowTime() > t3Millis);
- assertEquals(sdf.format(Long.valueOf(s1Info.getLastBorrowTime())),
- s1Info.getLastBorrowTimeFormatted());
+ assertEquals(sdf.format(Long.valueOf(s1Info.getLastBorrowTime())), s1Info.getLastBorrowTimeFormatted());
assertTrue(s1Info.getLastBorrowTime() < t4Millis);
}
}
(commons-pool) 02/02: Add DefaultPooledObjectInfo.getPooledObject().
Posted by gg...@apache.org.
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
commit 864bf0c47982ec2aea32827d7e17da7302b7f0bb
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Jan 20 22:04:10 2026 +0000
Add DefaultPooledObjectInfo.getPooledObject().
---
src/changes/changes.xml | 1 +
.../apache/commons/pool2/impl/DefaultPooledObjectInfo.java | 11 +++++++++++
.../commons/pool2/impl/TestDefaultPooledObjectInfo.java | 11 +++++++++++
3 files changed, 23 insertions(+)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index efae18a5..5b049fad 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -51,6 +51,7 @@ The <action> type attribute can be add,update,fix,remove.
<!-- ADD -->
<action type="add" dev="ggregory" due-to="Philip Helger, Gary Gregory" issue="POOL-430">Make AbandonedConfig.DEFAULT_REMOVE_ABANDONED_TIMEOUT_DURATION public.</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add EvictionConfig.isEvictionThread().</action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">Add DefaultPooledObjectInfo.getPooledObject().</action>
<!-- UPDATE -->
<action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 93 to 95.</action>
</release>
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 9251b4b2..c4dae41d 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
+++ b/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
@@ -87,6 +87,16 @@ public class DefaultPooledObjectInfo implements DefaultPooledObjectInfoMBean {
return getTimeMillisFormatted(getLastReturnTime());
}
+ /**
+ * Gets the pooled object for debugging, use at your own risk, changing the state of this object may have unintended consequences for the pool.
+ *
+ * @return the pooled object for debugging, use at your own risk, changing the state of this object may have unintended consequences for the pool.
+ * @since 2.14.0
+ */
+ public PooledObject<?> getPooledObject() {
+ return pooledObject;
+ }
+
@Override
public String getPooledObjectToString() {
return Objects.toString(pooledObject.getObject(), null);
@@ -102,6 +112,7 @@ public class DefaultPooledObjectInfo implements DefaultPooledObjectInfoMBean {
return new SimpleDateFormat(PATTERN).format(Long.valueOf(millis));
}
+
/**
* @since 2.4.3
*/
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java b/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
index f8342200..7ff31b24 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
@@ -44,6 +44,17 @@ class TestDefaultPooledObjectInfo {
}
}
+ @Test
+ void testGetPooledObject() throws Exception {
+ try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory())) {
+ pool.borrowObject();
+ final Set<DefaultPooledObjectInfo> strings = pool.listAllObjects();
+ assertEquals(1, strings.size());
+ final DefaultPooledObjectInfo s1Info = strings.iterator().next();
+ assertEquals("0", s1Info.getPooledObject().getObject());
+ }
+ }
+
@Test
void testGetPooledObjectToString() throws Exception {
try (GenericObjectPool<String> pool = new GenericObjectPool<>(new SimpleFactory())) {