This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git


The following commit(s) were added to refs/heads/master by this push:
     new f871a7d3 Fix unguarded read
f871a7d3 is described below

commit f871a7d3756bfb3e55c684dd7f9f38a8bbe8c841
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Aug 28 18:26:17 2025 +0100

    Fix unguarded read
    
    All read access to traceList should be protected by sync block
    
    Identified by Coverity scan running on Tomcat's fork of DBCP
---
 src/main/java/org/apache/commons/dbcp2/AbandonedTrace.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/commons/dbcp2/AbandonedTrace.java 
b/src/main/java/org/apache/commons/dbcp2/AbandonedTrace.java
index 58503169..6dc97388 100644
--- a/src/main/java/org/apache/commons/dbcp2/AbandonedTrace.java
+++ b/src/main/java/org/apache/commons/dbcp2/AbandonedTrace.java
@@ -131,12 +131,12 @@ public class AbandonedTrace implements TrackedUse, 
AutoCloseable {
      * @return List of objects.
      */
     protected List<AbandonedTrace> getTrace() {
-        final int size = traceList.size();
-        if (size == 0) {
-            return Collections.emptyList();
-        }
-        final ArrayList<AbandonedTrace> result = new ArrayList<>(size);
         synchronized (this.traceList) {
+            final int size = traceList.size();
+            if (size == 0) {
+                return Collections.emptyList();
+            }
+            final ArrayList<AbandonedTrace> result = new ArrayList<>(size);
             final Iterator<WeakReference<AbandonedTrace>> iter = 
traceList.iterator();
             while (iter.hasNext()) {
                 final AbandonedTrace trace = iter.next().get();
@@ -147,8 +147,8 @@ public class AbandonedTrace implements TrackedUse, 
AutoCloseable {
                     result.add(trace);
                 }
             }
+            return result;
         }
-        return result;
     }
 
     /**

Reply via email to