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
The following commit(s) were added to refs/heads/POOL_2_X by this push:
new 596c3901 EvictionTimer now restores the current thread's interrupt
flag when catching InterruptedException
596c3901 is described below
commit 596c39010e680f5008a2fef423064dc94b9686dc
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Jan 28 20:03:07 2026 -0500
EvictionTimer now restores the current thread's interrupt flag when
catching InterruptedException
---
src/changes/changes.xml | 1 +
src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java | 1 +
src/test/java/org/apache/commons/pool2/PoolTest.java | 4 ++--
.../org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java | 1 +
.../org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java | 1 +
.../java/org/apache/commons/pool2/impl/TestGenericObjectPool.java | 1 +
.../java/org/apache/commons/pool2/performance/PerformanceTest.java | 2 ++
7 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f379ec93..e11f9b6e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -48,6 +48,7 @@ The <action> type attribute can be add,update,fix,remove.
<body>
<release version="2.14.0" date="YYYY-MM-DD" description="This is a
maintenance release. Java 8 or later is required.">
<!-- FIX -->
+ <action type="fix" dev="ggregory" due-to="Gary Gregory">EvictionTimer
now restores the current thread's interrupt flag when catching
InterruptedException.</action>
<!-- 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>
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 cf51cd0d..7867ef87 100644
--- a/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
+++ b/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
@@ -158,6 +158,7 @@ final class EvictionTimer {
} catch (final InterruptedException e) {
// Swallow
// Significant API changes would be required to propagate this
+ Thread.currentThread().interrupt();
}
executor.setCorePoolSize(0);
executor = null;
diff --git a/src/test/java/org/apache/commons/pool2/PoolTest.java
b/src/test/java/org/apache/commons/pool2/PoolTest.java
index 541fa3ba..08752003 100644
--- a/src/test/java/org/apache/commons/pool2/PoolTest.java
+++ b/src/test/java/org/apache/commons/pool2/PoolTest.java
@@ -57,7 +57,7 @@ class PoolTest {
try {
Thread.sleep(VALIDATION_WAIT_IN_MILLIS);
} catch (final InterruptedException e) {
- Thread.interrupted();
+ Thread.currentThread().interrupt();
}
return false;
}
@@ -82,7 +82,7 @@ class PoolTest {
try {
Thread.sleep(EVICTION_PERIOD_IN_MILLIS);
} catch (final InterruptedException e) {
- Thread.interrupted();
+ Thread.currentThread().interrupt();
}
}
final Thread[] threads = new Thread[Thread.activeCount()];
diff --git
a/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
b/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
index 384830b8..a48af257 100644
---
a/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
+++
b/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
@@ -68,6 +68,7 @@ public class DisconnectingWaiterFactory<K> extends
WaiterFactory<K> {
try {
Thread.sleep(timeBetweenConnectionChecks.toMillis());
} catch (final InterruptedException e) {
+ Thread.currentThread().interrupt();
e.printStackTrace();
}
if (Duration.between(start, Instant.now()).compareTo(maxWait) > 0)
{
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 bc2ec41f..0e78f5d9 100644
---
a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
+++
b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
@@ -922,6 +922,7 @@ public class TestGenericKeyedObjectPool extends
AbstractTestKeyedObjectPool {
try {
Thread.sleep(10);
} catch (final InterruptedException e) {
+ Thread.currentThread().interrupt();
fail(e.toString());
}
}
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 1e22de82..bfaa8e7f 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
@@ -1157,6 +1157,7 @@ class TestGenericObjectPool extends TestBaseObjectPool {
try {
Thread.sleep(10);
} catch (final InterruptedException e) {
+ Thread.currentThread().interrupt();
fail(e.toString());
}
}
diff --git
a/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
b/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
index 95fd0222..ac124c80 100644
--- a/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
+++ b/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
@@ -139,6 +139,7 @@ class PerformanceTest {
try {
futures = threadPool.invokeAll(tasks);
} catch (final InterruptedException e) {
+ Thread.currentThread().interrupt();
e.printStackTrace();
}
if (logLevel >= 1) {
@@ -159,6 +160,7 @@ class PerformanceTest {
try {
taskStats = future.get();
} catch (final InterruptedException | ExecutionException e) {
+ Thread.currentThread().interrupt();
e.printStackTrace();
}
if (taskStats != null) {