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

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

commit 6f6c12e4532a90c722bc9103fa1ee13af10179af
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Mon May 26 10:10:18 2025 -0400

    Fix SpotBugs [ERROR] Medium: Shared primitive variable "maxTotal" in one
    thread may not yield the value of the most recent write from another
    thread [org.apache.commons.dbcp2.datasources.SharedPoolDataSource]
    AT_STALE_THREAD_WRITE_OF_PRIMITIVE
---
 src/changes/changes.xml                                                 | 1 +
 .../java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 066df3f9..b8fc825d 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -81,6 +81,7 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs 
[ERROR] Medium: Shared primitive variable "cacheState" in one thread may not 
yield the value of the most recent write from another thread 
[org.apache.commons.dbcp2.DelegatingConnection] 
AT_STALE_THREAD_WRITE_OF_PRIMITIVE.</action>
       <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs 
[ERROR] Medium: Operation on the "fatalSqlExceptionThrown" shared variable in 
"PoolableConnection" class is not atomic 
[org.apache.commons.dbcp2.PoolableConnection] 
AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE.</action>
       <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs 
[ERROR] Medium: Shared primitive variable "clearStatementPoolOnReturn" in one 
thread may not yield the value of the most recent write from another thread 
[org.apache.commons.dbcp2.PoolingConnection] 
AT_STALE_THREAD_WRITE_OF_PRIMITIVE.</action>
+      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs 
[ERROR] Medium: Shared primitive variable "maxTotal" in one thread may not 
yield the value of the most recent write from another thread 
[org.apache.commons.dbcp2.datasources.SharedPoolDataSource] 
AT_STALE_THREAD_WRITE_OF_PRIMITIVE.</action>
       <!-- ADD -->
       <!-- UPDATE -->
       <action type="update" dev="ggregory" due-to="Gary Gregory">Bump 
org.apache.commons:commons-parent from 78 to 81.</action>
diff --git 
a/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java 
b/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
index e9569dbc..ff42cd0c 100644
--- 
a/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
+++ 
b/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
@@ -56,7 +56,7 @@ public class SharedPoolDataSource extends 
InstanceKeyDataSource {
     /**
      * Max total defaults to {@link 
GenericKeyedObjectPoolConfig#DEFAULT_MAX_TOTAL}.
      */
-    private int maxTotal = GenericKeyedObjectPoolConfig.DEFAULT_MAX_TOTAL;
+    private volatile int maxTotal = 
GenericKeyedObjectPoolConfig.DEFAULT_MAX_TOTAL;
 
     /**
      * Maps user credentials to pooled connection with credentials.

Reply via email to