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) {

Reply via email to