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
The following commit(s) were added to refs/heads/master by this push: new b137fda Avoid NPE when calling DriverAdapterCPDS.toString() (#31) b137fda is described below commit b137fda65be70c4431a7a09ca379e40a300760e1 Author: Sergey Chupov <scad...@live.com> AuthorDate: Thu May 9 03:32:55 2019 +0300 Avoid NPE when calling DriverAdapterCPDS.toString() (#31) * Add test for DriverAdapterCPDS.toString() It currently fails when connectionProperties are null * Do not access connectionProperties when it's null --- .../apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java | 2 +- .../commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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 a1f7e41..e80d69c 100644 --- a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java +++ b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java @@ -765,7 +765,7 @@ public class DriverAdapterCPDS implements ConnectionPoolDataSource, Referenceabl builder.append(", connectionProperties="); Properties tmpProps = connectionProperties; final String pwdKey = "password"; - if (connectionProperties.contains(pwdKey)) { + if (connectionProperties != null && connectionProperties.contains(pwdKey)) { tmpProps = (Properties) connectionProperties.clone(); tmpProps.remove(pwdKey); } diff --git a/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java b/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java index 35d12c7..ab0a4dd 100644 --- a/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java +++ b/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java @@ -367,4 +367,16 @@ public class TestDriverAdapterCPDS { final Object o = pcds.getObjectInstance(ref, null, null, null); assertEquals(pcds.getDescription(), ((DriverAdapterCPDS) o).getDescription()); } + + @Test + public void testToStringWithoutConnectionProperties() throws ClassNotFoundException + { + final DriverAdapterCPDS cleanCpds = new DriverAdapterCPDS(); + cleanCpds.setDriver( "org.apache.commons.dbcp2.TesterDriver" ); + cleanCpds.setUrl( "jdbc:apache:commons:testdriver" ); + cleanCpds.setUser( "foo" ); + cleanCpds.setPassword( "bar" ); + + cleanCpds.toString(); + } }