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/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new 9feda96 Merge additional fix for DBCP-555 9feda96 is described below commit 9feda96c60fd16db2cd3fe0f39df326b05c8c307 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Aug 9 17:47:36 2019 +0100 Merge additional fix for DBCP-555 --- MERGE.txt | 2 +- java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java | 10 +++++----- java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java | 10 +++++----- .../apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java | 8 ++++---- .../apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java | 8 ++++---- java/org/apache/tomcat/dbcp/dbcp2/SQLExceptionList.java | 8 +++++++- webapps/docs/changelog.xml | 2 +- 7 files changed, 27 insertions(+), 21 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index 396405a..18da378 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -63,7 +63,7 @@ Sub-tree src/main/java/org/apache/commons/dbcp2 src/main/resources/org/apache/commons/dbcp2 The SHA1 ID for the most recent commit to be merged to Tomcat is: -87d9e3a66b896d81339a0947d001837ad2651605 (2019-08-01) +4813b7f5456c1f4fecc4f701ac731a71f57db249 (2019-08-09) Pool2 Sub-tree diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java index 21d77eb..b06546a 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java @@ -622,7 +622,7 @@ public class DelegatingConnection<C extends Connection> extends AbandonedTrace i // DBCP-288. Not all the traced objects will be statements final List<AbandonedTrace> traces = getTrace(); if (traces != null && traces.isEmpty()) { - final List<Exception> thrown = new ArrayList<>(); + final List<Exception> thrownList = new ArrayList<>(); final Iterator<AbandonedTrace> traceIter = traces.iterator(); while (traceIter.hasNext()) { final Object trace = traceIter.next(); @@ -630,7 +630,7 @@ public class DelegatingConnection<C extends Connection> extends AbandonedTrace i try { ((Statement) trace).close(); } catch (Exception e) { - thrown.add(e); + thrownList.add(e); } } else if (trace instanceof ResultSet) { // DBCP-265: Need to close the result sets that are @@ -638,13 +638,13 @@ public class DelegatingConnection<C extends Connection> extends AbandonedTrace i try { ((ResultSet) trace).close(); } catch (Exception e) { - thrown.add(e); + thrownList.add(e); } } } clearTrace(); - if (!thrown.isEmpty()) { - throw new SQLExceptionList(thrown); + if (!thrownList.isEmpty()) { + throw new SQLExceptionList(thrownList); } } setLastUsed(0); diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java index d4f9355..daa0c04 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingStatement.java @@ -126,7 +126,7 @@ public class DelegatingStatement extends AbandonedTrace implements Statement { if (isClosed()) { return; } - final List<Exception> thrown = new ArrayList<>(); + final List<Exception> thrownList = new ArrayList<>(); try { if (connection != null) { connection.removeTrace(this); @@ -150,7 +150,7 @@ public class DelegatingStatement extends AbandonedTrace implements Statement { // Does not rethrow e. connection.handleExceptionNoThrow(e); } - thrown.add(e); + thrownList.add(e); } } clearTrace(); @@ -163,15 +163,15 @@ public class DelegatingStatement extends AbandonedTrace implements Statement { // Does not rethrow e. connection.handleExceptionNoThrow(e); } - thrown.add(e); + thrownList.add(e); } } } } finally { closed = true; statement = null; - if (!thrown.isEmpty()) { - throw new SQLExceptionList(thrown); + if (!thrownList.isEmpty()) { + throw new SQLExceptionList(thrownList); } } } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java b/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java index 9c0be44..7801099 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/PoolableCallableStatement.java @@ -122,20 +122,20 @@ public class PoolableCallableStatement extends DelegatingCallableStatement { // See DBCP-10 for what could happen when ResultSets are closed twice. final List<AbandonedTrace> resultSetList = getTrace(); if (resultSetList != null) { - final List<Exception> thrown = new ArrayList<>(); + final List<Exception> thrownList = new ArrayList<>(); final ResultSet[] resultSets = resultSetList.toArray(new ResultSet[resultSetList.size()]); for (final ResultSet resultSet : resultSets) { if (resultSet != null) { try { resultSet.close(); } catch (Exception e) { - thrown.add(e); + thrownList.add(e); } } } clearTrace(); - if (!thrown.isEmpty()) { - throw new SQLExceptionList(thrown); + if (!thrownList.isEmpty()) { + throw new SQLExceptionList(thrownList); } } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java b/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java index d8e45c4..9e96b94 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/PoolablePreparedStatement.java @@ -137,20 +137,20 @@ public class PoolablePreparedStatement<K> extends DelegatingPreparedStatement { // See bug 17301 for what could happen when ResultSets are closed twice. final List<AbandonedTrace> resultSetList = getTrace(); if (resultSetList != null) { - final List<Exception> thrown = new ArrayList<>(); + final List<Exception> thrownList = new ArrayList<>(); final ResultSet[] resultSets = resultSetList.toArray(new ResultSet[resultSetList.size()]); for (final ResultSet resultSet : resultSets) { if (resultSet != null) { try { resultSet.close(); } catch (Exception e) { - thrown.add(e); + thrownList.add(e); } } } clearTrace(); - if (!thrown.isEmpty()) { - throw new SQLExceptionList(thrown); + if (!thrownList.isEmpty()) { + throw new SQLExceptionList(thrownList); } } diff --git a/java/org/apache/tomcat/dbcp/dbcp2/SQLExceptionList.java b/java/org/apache/tomcat/dbcp/dbcp2/SQLExceptionList.java index b740ba0..6f24f04 100644 --- a/java/org/apache/tomcat/dbcp/dbcp2/SQLExceptionList.java +++ b/java/org/apache/tomcat/dbcp/dbcp2/SQLExceptionList.java @@ -40,10 +40,16 @@ public class SQLExceptionList extends SQLException { * @param causeList a list of cause exceptions. */ public SQLExceptionList(List<? extends Throwable> causeList) { - super(String.format("%,d exceptions: %s", Integer.valueOf(causeList.size()), causeList), causeList.get(0)); + super(String.format("%,d exceptions: %s", Integer.valueOf(causeList == null ? 0 : causeList.size()), causeList), + causeList == null ? null : causeList.get(0)); this.causeList = causeList; } + /** + * Gets the cause list. + * + * @return The list of causes. + */ public List<? extends Throwable> getCauseList() { return causeList; } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7e544a2..b65efa2 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -255,7 +255,7 @@ </update> <update> Update the internal fork of Commons DBCP2 to 87d9e3a (2018-08-01) to - pick up the changes Commons DBCP2 2.7.0 RC1. (markt) + pick up the changes Commons DBCP2 2.7.0 and DBCP-555. (markt) </update> <update> <bug>63648</bug>: Update the test TLS keys and certificates used in the --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org