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

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 7a173495d5 Update DBCP to f131286 (2023-03-08, 2.10.0-SNAPSHOT)
7a173495d5 is described below

commit 7a173495d5e5acb542059e00a9f824af026d697a
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Mar 8 14:26:34 2023 +0000

    Update DBCP to f131286 (2023-03-08, 2.10.0-SNAPSHOT)
    
    This corrects a regression introduced in 10.1.5
---
 MERGE.txt                                          |  2 +-
 .../apache/tomcat/dbcp/dbcp2/AbandonedTrace.java   | 10 +++++---
 .../tomcat/dbcp/dbcp2/DelegatingConnection.java    | 13 +++++++----
 .../dbcp/dbcp2/DelegatingDatabaseMetaData.java     |  1 -
 java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java    |  2 +-
 .../dbcp/dbcp2/PoolableCallableStatement.java      |  4 +---
 .../dbcp/dbcp2/PoolablePreparedStatement.java      |  4 +---
 .../dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java  |  4 ++--
 .../dbcp2/cpdsadapter/PooledConnectionImpl.java    | 27 ++++++++++++----------
 .../dbcp2/datasources/InstanceKeyDataSource.java   |  1 -
 webapps/docs/changelog.xml                         |  5 ++++
 11 files changed, 41 insertions(+), 32 deletions(-)

diff --git a/MERGE.txt b/MERGE.txt
index 82df920672..8f24ba74ea 100644
--- a/MERGE.txt
+++ b/MERGE.txt
@@ -72,4 +72,4 @@ Sub-tree
 src/main/java/org/apache/commons/dbcp2
 src/main/resources/org/apache/commons/dbcp2
 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is:
-f13128604536e78bb1b45b44f74128e93cfbb7cc (2023-01-03)
+b1e0c86d101aa43029625eb191aaee4306911702 (2023-03-08)
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java 
b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java
index a094f16d31..e57b4108a1 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/AbandonedTrace.java
@@ -37,6 +37,12 @@ import org.apache.tomcat.dbcp.pool2.TrackedUse;
  */
 public class AbandonedTrace implements TrackedUse, AutoCloseable {
 
+    static void add(AbandonedTrace receiver, AbandonedTrace trace) {
+        if (receiver != null) {
+            receiver.addTrace(trace);
+        }
+    }
+
     /** A list of objects created by children of this object. */
     private final List<WeakReference<AbandonedTrace>> traceList = new 
ArrayList<>();
 
@@ -152,9 +158,7 @@ public class AbandonedTrace implements TrackedUse, 
AutoCloseable {
      *            AbandonedTrace parent object.
      */
     private void init(final AbandonedTrace parent) {
-        if (parent != null) {
-            parent.addTrace(this);
-        }
+        AbandonedTrace.add(parent, this);
     }
 
     /**
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java 
b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
index 6394875366..a9e620d3b7 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
@@ -41,6 +41,8 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.Executor;
 
+import org.apache.tomcat.dbcp.dbcp2.managed.ManagedConnection;
+
 /**
  * A base delegating implementation of {@link Connection}.
  * <p>
@@ -78,7 +80,7 @@ public class DelegatingConnection<C extends Connection> 
extends AbandonedTrace i
     /**
      * Creates a wrapper for the Connection which traces this Connection in 
the AbandonedObjectPool.
      *
-     * @param connection the {@link Connection} to delegate all calls to.
+     * @param connection the {@link Connection} to delegate all calls to, may 
be null (see {@link ManagedConnection}).
      */
     public DelegatingConnection(final C connection) {
         this.connection = connection;
@@ -104,11 +106,12 @@ public class DelegatingConnection<C extends Connection> 
extends AbandonedTrace i
     protected void checkOpen() throws SQLException {
         if (closed) {
             if (null != connection) {
-                String label = "";
+                String label;
                 try {
                     label = connection.toString();
-                } catch (final Exception ignored) {
-                    // ignore, leave label empty
+                } catch (final Exception e) {
+                    // leave label empty
+                    label = "";
                 }
                 throw new SQLException("Connection " + label + " is closed.");
             }
@@ -889,7 +892,7 @@ public class DelegatingConnection<C extends Connection> 
extends AbandonedTrace i
      * Sets my delegate.
      *
      * @param connection
-     *            my delegate.
+     *            my delegate, may be null.
      */
     public void setDelegate(final C connection) {
         this.connection = connection;
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingDatabaseMetaData.java 
b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingDatabaseMetaData.java
index 00f816cbd2..fa9bfaa34e 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingDatabaseMetaData.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingDatabaseMetaData.java
@@ -1894,7 +1894,6 @@ public class DelegatingDatabaseMetaData implements 
DatabaseMetaData {
         }
     }
 
-    /* JDBC_4_ANT_KEY_END */
 
     @Override
     public <T> T unwrap(final Class<T> iface) throws SQLException {
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java 
b/java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java
index 64e261b7f0..6052f7d5e2 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/PStmtKey.java
@@ -182,7 +182,7 @@ public class PStmtKey {
      *        {@code ResultSet.TYPE_SCROLL_INSENSITIVE}, or {@code 
ResultSet.TYPE_SCROLL_SENSITIVE}.
      * @param resultSetConcurrency A concurrency type; one of {@code 
ResultSet.CONCUR_READ_ONLY} or
      *        {@code ResultSet.CONCUR_UPDATABLE}.
-     * @deprecated Use @link {@link #PStmtKey(String, String, String, int, 
int)}.
+     * @deprecated Use {@link #PStmtKey(String, String, String, int, int)}.
      */
     @Deprecated
     public PStmtKey(final String sql, final String catalog, final int 
resultSetType, final int resultSetConcurrency) {
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java 
b/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java
index 447aa22264..08d690d424 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java
@@ -76,9 +76,7 @@ public class PoolableCallableStatement extends 
DelegatingCallableStatement {
     @Override
     public void activate() throws SQLException {
         setClosedInternal(false);
-        if (getConnectionInternal() != null) {
-            getConnectionInternal().addTrace(this);
-        }
+        AbandonedTrace.add(getConnectionInternal(), this);
         super.activate();
     }
 
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java 
b/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java
index 1babf76d4d..30723e0320 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java
@@ -74,9 +74,7 @@ public class PoolablePreparedStatement<K> extends 
DelegatingPreparedStatement {
     @Override
     public void activate() throws SQLException {
         setClosedInternal(false);
-        if (getConnectionInternal() != null) {
-            getConnectionInternal().addTrace(this);
-        }
+        AbandonedTrace.add(getConnectionInternal(), this);
         super.activate();
     }
 
diff --git 
a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java 
b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java
index 642ced624e..c875fc247f 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/DriverAdapterCPDS.java
@@ -288,7 +288,7 @@ public class DriverAdapterCPDS implements 
ConnectionPoolDataSource, Referenceabl
                 if (isNotEmpty(ra)) {
                     setDriver(getStringContent(ra));
                 }
-                ra = ref.get("connectionString");
+                ra = ref.get("url");
                 if (isNotEmpty(ra)) {
                     setUrl(getStringContent(ra));
                 }
@@ -449,7 +449,7 @@ public class DriverAdapterCPDS implements 
ConnectionPoolDataSource, Referenceabl
         ref.add(new StringRefAddr("loginTimeout", 
String.valueOf(getLoginTimeout())));
         ref.add(new StringRefAddr(Constants.KEY_PASSWORD, getPassword()));
         ref.add(new StringRefAddr(Constants.KEY_USER, getUser()));
-        ref.add(new StringRefAddr("connectionString", getUrl()));
+        ref.add(new StringRefAddr("url", getUrl()));
 
         ref.add(new StringRefAddr("poolPreparedStatements", 
String.valueOf(isPoolPreparedStatements())));
         ref.add(new StringRefAddr("maxIdle", String.valueOf(getMaxIdle())));
diff --git 
a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java 
b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java
index c247cfd4cc..ad2c3ebe9c 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/cpdsadapter/PooledConnectionImpl.java
@@ -134,13 +134,12 @@ final class PooledConnectionImpl
             statementEventListeners.add(listener);
         }
     }
-    /* JDBC_4_ANT_KEY_END */
 
     /**
      * Throws an SQLException, if isClosed is true
      */
     private void assertOpen() throws SQLException {
-        if (closed) {
+        if (closed || connection == null) {
             throw new SQLException(CLOSED);
         }
     }
@@ -381,6 +380,11 @@ final class PooledConnectionImpl
         return logicalConnection;
     }
 
+    private Connection getRawConnection() throws SQLException {
+        assertOpen();
+        return connection;
+    }
+
     private String getSchemaOrNull() {
         try {
             return connection == null ? null : 
Jdbc41Bridge.getSchema(connection);
@@ -461,7 +465,7 @@ final class PooledConnectionImpl
      */
     CallableStatement prepareCall(final String sql) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareCall(sql);
+            return getRawConnection().prepareCall(sql);
         }
         try {
             return (CallableStatement) pStmtPool.borrowObject(createKey(sql, 
StatementType.CALLABLE_STATEMENT));
@@ -494,7 +498,7 @@ final class PooledConnectionImpl
     CallableStatement prepareCall(final String sql, final int resultSetType, 
final int resultSetConcurrency)
             throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareCall(sql, resultSetType, 
resultSetConcurrency);
+            return getRawConnection().prepareCall(sql, resultSetType, 
resultSetConcurrency);
         }
         try {
             return (CallableStatement) pStmtPool.borrowObject(
@@ -531,7 +535,7 @@ final class PooledConnectionImpl
     CallableStatement prepareCall(final String sql, final int resultSetType, 
final int resultSetConcurrency,
             final int resultSetHoldability) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareCall(sql, resultSetType, 
resultSetConcurrency, resultSetHoldability);
+            return getRawConnection().prepareCall(sql, resultSetType, 
resultSetConcurrency, resultSetHoldability);
         }
         try {
             return (CallableStatement) pStmtPool.borrowObject(createKey(sql, 
resultSetType, resultSetConcurrency,
@@ -553,7 +557,7 @@ final class PooledConnectionImpl
      */
     PreparedStatement prepareStatement(final String sql) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql);
+            return getRawConnection().prepareStatement(sql);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql));
@@ -579,7 +583,7 @@ final class PooledConnectionImpl
      */
     PreparedStatement prepareStatement(final String sql, final int 
autoGeneratedKeys) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql, autoGeneratedKeys);
+            return getRawConnection().prepareStatement(sql, autoGeneratedKeys);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql, autoGeneratedKeys));
@@ -611,7 +615,7 @@ final class PooledConnectionImpl
     PreparedStatement prepareStatement(final String sql, final int 
resultSetType, final int resultSetConcurrency)
             throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql, resultSetType, 
resultSetConcurrency);
+            return getRawConnection().prepareStatement(sql, resultSetType, 
resultSetConcurrency);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql, resultSetType, 
resultSetConcurrency));
@@ -625,7 +629,7 @@ final class PooledConnectionImpl
     PreparedStatement prepareStatement(final String sql, final int 
resultSetType, final int resultSetConcurrency,
             final int resultSetHoldability) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql, resultSetType, 
resultSetConcurrency, resultSetHoldability);
+            return getRawConnection().prepareStatement(sql, resultSetType, 
resultSetConcurrency, resultSetHoldability);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql, resultSetType, 
resultSetConcurrency, resultSetHoldability));
@@ -638,7 +642,7 @@ final class PooledConnectionImpl
 
     PreparedStatement prepareStatement(final String sql, final int[] 
columnIndexes) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql, columnIndexes);
+            return getRawConnection().prepareStatement(sql, columnIndexes);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql, columnIndexes));
@@ -651,7 +655,7 @@ final class PooledConnectionImpl
 
     PreparedStatement prepareStatement(final String sql, final String[] 
columnNames) throws SQLException {
         if (pStmtPool == null) {
-            return connection.prepareStatement(sql, columnNames);
+            return getRawConnection().prepareStatement(sql, columnNames);
         }
         try {
             return pStmtPool.borrowObject(createKey(sql, columnNames));
@@ -674,7 +678,6 @@ final class PooledConnectionImpl
     public void removeStatementEventListener(final StatementEventListener 
listener) {
         statementEventListeners.remove(listener);
     }
-    /* JDBC_4_ANT_KEY_END */
 
     /**
      * Sets the value of the accessToUnderlyingConnectionAllowed property. It 
controls if the PoolGuard allows access to
diff --git 
a/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSource.java 
b/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSource.java
index 2fbfb18a24..4709d118ba 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSource.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSource.java
@@ -1324,5 +1324,4 @@ public abstract class InstanceKeyDataSource implements 
DataSource, Referenceable
         }
         throw new SQLException(this + " is not a wrapper for " + iface);
     }
-    /* JDBC_4_ANT_KEY_END */
 }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f9e1d61715..9c775e9f3d 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -157,6 +157,11 @@
         to the jvm in <code>catalina.sh</code> when calling 
<code>version</code>.
         Patch suggested by Eric Hamilton. (lihan)
       </fix>
+      <update>
+        Update the internal fork of Commons DBCP to f131286 (2023-03-08,
+        2.10.0-SNAPSHOT). This corrects a regression introduced in 9.0.71.
+        (markt)
+      </update>
     </changelog>
   </subsection>
 </section>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to