You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2025/05/24 00:20:46 UTC
(commons-pool) branch POOL_2_X updated: JIRA: POOL-290. Prevent infinite loop potential in TestSoftRefOutOfMemory.
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 104c7b84 JIRA: POOL-290. Prevent infinite loop potential in TestSoftRefOutOfMemory.
104c7b84 is described below
commit 104c7b84059c6c6b8d171158c8906e0b8167fc1b
Author: Phil Steitz <ph...@gmail.com>
AuthorDate: Fri May 23 17:20:36 2025 -0700
JIRA: POOL-290. Prevent infinite loop potential in TestSoftRefOutOfMemory.
---
src/changes/changes.xml | 1 +
.../java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java | 3 +++
2 files changed, 4 insertions(+)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5895e8c8..11346422 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -47,6 +47,7 @@ The <action> type attribute can be add,update,fix,remove.
<body>
<release version="2.12.2" date="YYYY-MM-DD" description="This is a feature and maintenance release. Java 8 or later is required.">
<!-- FIX -->
+ <action type="fix" issue="POOL-290" dev="psteitz" due-to="Serge Angelov">TestSoftRefOutOfMemory (unit test) can loop infinitely on failure.</action>
<action type="fix" issue="POOL-419" dev="psteitz" due-to="Raju Gupta, Phil Steitz">GenericObjectPool counters and object collections can be corrupted when returnObject and invalidate are invoked concurrently by client threads on the same pooled object.</action>
<action type="fix" issue="POOL-421" dev="psteitz" due-to="Phil Steitz">GenericObjectPool addObject should return immediately when there is no capacity to add.</action>
<action type="fix" issue="POOL-420" dev="psteitz" due-to="Phil Steitz">The maximum wait time for GenericKeyedObjectPool.borrowObject(*) may exceed configured maximum wait time. This is the same issue as POOL-418, but for GKOP.
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java b/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
index 894f2325..64e58642 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
@@ -154,6 +154,7 @@ public class TestSoftRefOutOfMemory {
garbage.add(new byte[Math.min(1024 * 1024, (int) freeMemory / 2)]);
} catch (final OutOfMemoryError oome) {
System.gc();
+ assertEquals(0, pool.getNumIdle());
}
System.gc();
}
@@ -194,6 +195,7 @@ public class TestSoftRefOutOfMemory {
garbage.add(new byte[Math.min(1024 * 1024, (int) freeMemory / 2)]);
} catch (final OutOfMemoryError oome) {
System.gc();
+ assertEquals(0, pool.getNumIdle());
}
System.gc();
}
@@ -263,6 +265,7 @@ public class TestSoftRefOutOfMemory {
garbage.add(new byte[Math.min(1024 * 1024, (int) freeMemory / 2)]);
} catch (final OutOfMemoryError oome) {
System.gc();
+ assertEquals(0, pool.getNumIdle());
}
System.gc();
}