You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2018/08/16 18:59:46 UTC
commons-dbcp git commit: [DBCP-519] Add some toString() methods for
debugging (never printing passwords)
Repository: commons-dbcp
Updated Branches:
refs/heads/master 7b893aed7 -> 5bac43f7b
[DBCP-519] Add some toString() methods for debugging (never printing
passwords)
Project: http://git-wip-us.apache.org/repos/asf/commons-dbcp/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-dbcp/commit/5bac43f7
Tree: http://git-wip-us.apache.org/repos/asf/commons-dbcp/tree/5bac43f7
Diff: http://git-wip-us.apache.org/repos/asf/commons-dbcp/diff/5bac43f7
Branch: refs/heads/master
Commit: 5bac43f7b775c9c876af614e745f80ccb495f01f
Parents: 7b893ae
Author: Gary Gregory <ga...@gmail.com>
Authored: Thu Aug 16 12:59:41 2018 -0600
Committer: Gary Gregory <ga...@gmail.com>
Committed: Thu Aug 16 12:59:41 2018 -0600
----------------------------------------------------------------------
src/changes/changes.xml | 3 +
.../dbcp2/cpdsadapter/DriverAdapterCPDS.java | 40 +++++++++++
.../dbcp2/cpdsadapter/PooledConnectionImpl.java | 23 +++++++
.../datasources/CPDSConnectionFactory.java | 26 +++++++
.../datasources/InstanceKeyDataSource.java | 72 ++++++++++++++++++++
.../datasources/PerUserPoolDataSource.java | 41 +++++++++++
.../dbcp2/datasources/SharedPoolDataSource.java | 7 ++
.../commons/dbcp2/datasources/UserPassKey.java | 7 +-
8 files changed, 216 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 27717b1..8d69d58 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -76,6 +76,9 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="ggregory" type="fix" issue="DBCP-518" due-to="Gary Gregory">
Allow DBCP to work with old Java 6/JDBC drivers without throwing AbstractMethodError.
</action>
+ <action dev="ggregory" type="add" issue="DBCP-519" due-to="Gary Gregory">
+ Add some toString() methods for debugging (never printing passwords.)
+ </action>
</release>
<release version="2.5.0" date="2018-07-15" description="This is a minor release, including bug fixes and enhancements.">
<action dev="ggregory" type="update" issue="DBCP-505" due-to="Gary Gregory">
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
index 0844c9b..db97efe 100644
--- a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
+++ b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
@@ -730,4 +730,44 @@ public class DriverAdapterCPDS implements ConnectionPoolDataSource, Referenceabl
}
}
}
+
+ /**
+ * Does not print the userPassword field nor the password in the connectionProperties.
+ *
+ * @since 2.6.0
+ */
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder(super.toString());
+ builder.append("[description=");
+ builder.append(description);
+ builder.append(", url=");
+ builder.append(url);
+ builder.append(", userName=");
+ builder.append(userName);
+ builder.append(", driver=");
+ builder.append(driver);
+ builder.append(", loginTimeout=");
+ builder.append(loginTimeout);
+ builder.append(", poolPreparedStatements=");
+ builder.append(poolPreparedStatements);
+ builder.append(", maxIdle=");
+ builder.append(maxIdle);
+ builder.append(", timeBetweenEvictionRunsMillis=");
+ builder.append(timeBetweenEvictionRunsMillis);
+ builder.append(", numTestsPerEvictionRun=");
+ builder.append(numTestsPerEvictionRun);
+ builder.append(", minEvictableIdleTimeMillis=");
+ builder.append(minEvictableIdleTimeMillis);
+ builder.append(", maxPreparedStatements=");
+ builder.append(maxPreparedStatements);
+ builder.append(", getConnectionCalled=");
+ builder.append(getConnectionCalled);
+ builder.append(", connectionProperties=");
+ builder.append(((Properties) connectionProperties.clone()).remove("password"));
+ builder.append(", accessToUnderlyingConnectionAllowed=");
+ builder.append(accessToUnderlyingConnectionAllowed);
+ builder.append("]");
+ return builder.toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/cpdsadapter/PooledConnectionImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/PooledConnectionImpl.java b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/PooledConnectionImpl.java
index 715c0de..604ad71 100644
--- a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/PooledConnectionImpl.java
+++ b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/PooledConnectionImpl.java
@@ -647,4 +647,27 @@ class PooledConnectionImpl
public boolean validateObject(final PStmtKey key, final PooledObject<DelegatingPreparedStatement> pooledObject) {
return true;
}
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder(super.toString());
+ builder.append("[connection=");
+ builder.append(connection);
+ builder.append(", delegatingConnection=");
+ builder.append(delegatingConnection);
+ builder.append(", logicalConnection=");
+ builder.append(logicalConnection);
+ builder.append(", eventListeners=");
+ builder.append(eventListeners);
+ builder.append(", statementEventListeners=");
+ builder.append(statementEventListeners);
+ builder.append(", closed=");
+ builder.append(closed);
+ builder.append(", pStmtPool=");
+ builder.append(pStmtPool);
+ builder.append(", accessToUnderlyingConnectionAllowed=");
+ builder.append(accessToUnderlyingConnectionAllowed);
+ builder.append("]");
+ return builder.toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java b/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
index 20f0c1f..ef6e5f7 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
@@ -20,6 +20,7 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
@@ -396,4 +397,29 @@ class CPDSConnectionFactory
}
}
}
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder(super.toString());
+ builder.append("[cpds=");
+ builder.append(cpds);
+ builder.append(", validationQuery=");
+ builder.append(validationQuery);
+ builder.append(", validationQueryTimeoutSeconds=");
+ builder.append(validationQueryTimeoutSeconds);
+ builder.append(", rollbackAfterValidation=");
+ builder.append(rollbackAfterValidation);
+ builder.append(", pool=");
+ builder.append(pool);
+ builder.append(", userName=");
+ builder.append(userName);
+ builder.append(", maxConnLifetimeMillis=");
+ builder.append(maxConnLifetimeMillis);
+ builder.append(", validatingSet=");
+ builder.append(validatingSet);
+ builder.append(", pcMap=");
+ builder.append(pcMap);
+ builder.append("]");
+ return builder.toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/datasources/InstanceKeyDataSource.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/InstanceKeyDataSource.java b/src/main/java/org/apache/commons/dbcp2/datasources/InstanceKeyDataSource.java
index b72a03c..2145995 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/InstanceKeyDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/InstanceKeyDataSource.java
@@ -1053,4 +1053,76 @@ public abstract class InstanceKeyDataSource implements DataSource, Referenceable
}
return cpds;
}
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder(super.toString());
+ builder.append("[");
+ toStringFields(builder);
+ builder.append("]");
+ return builder.toString();
+ }
+
+ protected void toStringFields(StringBuilder builder) {
+ builder.append("getConnectionCalled=");
+ builder.append(getConnectionCalled);
+ builder.append(", dataSource=");
+ builder.append(dataSource);
+ builder.append(", dataSourceName=");
+ builder.append(dataSourceName);
+ builder.append(", description=");
+ builder.append(description);
+ builder.append(", jndiEnvironment=");
+ builder.append(jndiEnvironment);
+ builder.append(", loginTimeout=");
+ builder.append(loginTimeout);
+ builder.append(", logWriter=");
+ builder.append(logWriter);
+ builder.append(", instanceKey=");
+ builder.append(instanceKey);
+ builder.append(", defaultBlockWhenExhausted=");
+ builder.append(defaultBlockWhenExhausted);
+ builder.append(", defaultEvictionPolicyClassName=");
+ builder.append(defaultEvictionPolicyClassName);
+ builder.append(", defaultLifo=");
+ builder.append(defaultLifo);
+ builder.append(", defaultMaxIdle=");
+ builder.append(defaultMaxIdle);
+ builder.append(", defaultMaxTotal=");
+ builder.append(defaultMaxTotal);
+ builder.append(", defaultMaxWaitMillis=");
+ builder.append(defaultMaxWaitMillis);
+ builder.append(", defaultMinEvictableIdleTimeMillis=");
+ builder.append(defaultMinEvictableIdleTimeMillis);
+ builder.append(", defaultMinIdle=");
+ builder.append(defaultMinIdle);
+ builder.append(", defaultNumTestsPerEvictionRun=");
+ builder.append(defaultNumTestsPerEvictionRun);
+ builder.append(", defaultSoftMinEvictableIdleTimeMillis=");
+ builder.append(defaultSoftMinEvictableIdleTimeMillis);
+ builder.append(", defaultTestOnCreate=");
+ builder.append(defaultTestOnCreate);
+ builder.append(", defaultTestOnBorrow=");
+ builder.append(defaultTestOnBorrow);
+ builder.append(", defaultTestOnReturn=");
+ builder.append(defaultTestOnReturn);
+ builder.append(", defaultTestWhileIdle=");
+ builder.append(defaultTestWhileIdle);
+ builder.append(", defaultTimeBetweenEvictionRunsMillis=");
+ builder.append(defaultTimeBetweenEvictionRunsMillis);
+ builder.append(", validationQuery=");
+ builder.append(validationQuery);
+ builder.append(", validationQueryTimeoutSeconds=");
+ builder.append(validationQueryTimeoutSeconds);
+ builder.append(", rollbackAfterValidation=");
+ builder.append(rollbackAfterValidation);
+ builder.append(", maxConnLifetimeMillis=");
+ builder.append(maxConnLifetimeMillis);
+ builder.append(", defaultAutoCommit=");
+ builder.append(defaultAutoCommit);
+ builder.append(", defaultTransactionIsolation=");
+ builder.append(defaultTransactionIsolation);
+ builder.append(", defaultReadOnly=");
+ builder.append(defaultReadOnly);
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java b/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
index 1087b37..289617b 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
@@ -1173,4 +1173,45 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
con.setReadOnly(defaultReadOnly.booleanValue());
}
}
+
+ @Override
+ protected void toStringFields(StringBuilder builder) {
+ super.toStringFields(builder);
+ builder.append(", perUserBlockWhenExhausted=");
+ builder.append(perUserBlockWhenExhausted);
+ builder.append(", perUserEvictionPolicyClassName=");
+ builder.append(perUserEvictionPolicyClassName);
+ builder.append(", perUserLifo=");
+ builder.append(perUserLifo);
+ builder.append(", perUserMaxIdle=");
+ builder.append(perUserMaxIdle);
+ builder.append(", perUserMaxTotal=");
+ builder.append(perUserMaxTotal);
+ builder.append(", perUserMaxWaitMillis=");
+ builder.append(perUserMaxWaitMillis);
+ builder.append(", perUserMinEvictableIdleTimeMillis=");
+ builder.append(perUserMinEvictableIdleTimeMillis);
+ builder.append(", perUserMinIdle=");
+ builder.append(perUserMinIdle);
+ builder.append(", perUserNumTestsPerEvictionRun=");
+ builder.append(perUserNumTestsPerEvictionRun);
+ builder.append(", perUserSoftMinEvictableIdleTimeMillis=");
+ builder.append(perUserSoftMinEvictableIdleTimeMillis);
+ builder.append(", perUserTestOnCreate=");
+ builder.append(perUserTestOnCreate);
+ builder.append(", perUserTestOnBorrow=");
+ builder.append(perUserTestOnBorrow);
+ builder.append(", perUserTestOnReturn=");
+ builder.append(perUserTestOnReturn);
+ builder.append(", perUserTestWhileIdle=");
+ builder.append(perUserTestWhileIdle);
+ builder.append(", perUserTimeBetweenEvictionRunsMillis=");
+ builder.append(perUserTimeBetweenEvictionRunsMillis);
+ builder.append(", perUserDefaultAutoCommit=");
+ builder.append(perUserDefaultAutoCommit);
+ builder.append(", perUserDefaultTransactionIsolation=");
+ builder.append(perUserDefaultTransactionIsolation);
+ builder.append(", perUserDefaultReadOnly=");
+ builder.append(perUserDefaultReadOnly);
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
----------------------------------------------------------------------
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 485b43b..76c2617 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
@@ -235,4 +235,11 @@ public class SharedPoolDataSource extends InstanceKeyDataSource {
throw new IOException("NamingException: " + e);
}
}
+
+ @Override
+ protected void toStringFields(StringBuilder builder) {
+ super.toStringFields(builder);
+ builder.append(", maxTotal=");
+ builder.append(maxTotal);
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-dbcp/blob/5bac43f7/src/main/java/org/apache/commons/dbcp2/datasources/UserPassKey.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/UserPassKey.java b/src/main/java/org/apache/commons/dbcp2/datasources/UserPassKey.java
index 48ccb98..094a6ba 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/UserPassKey.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/UserPassKey.java
@@ -125,9 +125,10 @@ class UserPassKey implements Serializable {
@Override
public String toString() {
- final StringBuffer sb = new StringBuffer(50);
- sb.append("UserPassKey(");
- sb.append(userName).append(", ").append(userPassword).append(')');
+ final StringBuffer sb = new StringBuffer(super.toString());
+ sb.append("[");
+ sb.append(userName);
+ sb.append(']');
return sb.toString();
}
}