{ throw new NullPointerException(); } this.jdbcConnectString = jdbcConnectString; this.jdbcProperties = (Properties) jdbcProperties.clone(); } public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final DriverConnectionKey that = (DriverConnectionKey) o; if (!jdbcConnectString.equals(that.jdbcConnectString)) { return false; } if (!jdbcProperties.equals(that.jdbcProperties)) { return false; } return true; } public int hashCode() { int result = jdbcConnectString.hashCode(); result = 31 * result + jdbcProperties.hashCode(); return result; } } /** * Implementation of {@link DataSource} which calls the good ol' * {@link java.sql.DriverManager}. */ private static class DriverManagerDataSource implements DataSource { private String jdbcConnectString; private PrintWriter logWriter; private int loginTimeout; private Properties jdbcProperties; public DriverManagerDataSource(final String jdbcConnectString, final Properties properties) { if (jdbcConnectString == null) { throw new NullPointerException(); } if (properties == null) { throw new NullPointerException(); } this.jdbcConnectString = jdbcConnectString; this.jdbcProperties = (Properties) properties.clone(); } public Logger getParentLogger() throws SQLFeatureNotSupportedException { throw new SQLFeatureNotSupportedException();