From 1d04aba494fc69e2e91a8ca0aca01618389c669a Mon Sep 17 00:00:00 2001 From: Anthony Dickinson Date: Tue, 15 Nov 2016 16:08:40 +0100 Subject: [PATCH 1/3] Fix for #4 java.security.AccessControlException 48 - passing the parameter of the connPoolKey to the function createHikariDataSource 74 - extending the definition of the function createHikariDataSource with an integer parameter 76 - inserted the setting of the poolName of the dataSource to prevent the generation of the poolnumber globally. --- .../databaseconnector/impl/JdbcConnectionManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/javasource/databaseconnector/impl/JdbcConnectionManager.java b/javasource/databaseconnector/impl/JdbcConnectionManager.java index 0c4406a..340caa3 100644 --- a/javasource/databaseconnector/impl/JdbcConnectionManager.java +++ b/javasource/databaseconnector/impl/JdbcConnectionManager.java @@ -15,6 +15,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import java.util.Random; /** * Simple connection manager backed by HikariCP. It does not support shutdown at this moment that may lead to memory leak in case of @@ -44,7 +45,7 @@ public Connection getConnection(final String jdbcUrl, final String userName, fin final Integer connPoolKey = toConnPoolKey(jdbcUrl, userName); final HikariDataSource dataSource = connectionPool.computeIfAbsent(connPoolKey, k -> { logNode.trace(String.format("Creating data source in connection pool for [url=%s, user=%s]", jdbcUrl, userName)); - return createHikariDataSource(jdbcUrl, userName, password); + return createHikariDataSource(jdbcUrl, userName, password, connPoolKey); }); logNode.trace(String.format("Getting connection from data source in connection pool for [url=%s, user=%s]", jdbcUrl, userName)); return dataSource.getConnection(); @@ -70,9 +71,9 @@ private Integer toConnPoolKey(final String jdbcUrl, final String userName) { return (jdbcUrl + userName).hashCode(); } - private HikariDataSource createHikariDataSource(final String jdbcUrl, final String userName, final String password) { + private HikariDataSource createHikariDataSource(final String jdbcUrl, final String userName, final String password, Integer connPoolKey) { final HikariDataSource dataSource = new HikariDataSource(); - + dataSource.setPoolName(""+ connPoolKey); dataSource.setJdbcUrl(jdbcUrl); dataSource.setUsername(userName); dataSource.setPassword(password); From c8a80a310fdad4539f4be6505bd31bbb63b02d4d Mon Sep 17 00:00:00 2001 From: Anthony Dickinson Date: Tue, 15 Nov 2016 16:09:44 +0100 Subject: [PATCH 2/3] Update JdbcConnectionManager.java --- javasource/databaseconnector/impl/JdbcConnectionManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/javasource/databaseconnector/impl/JdbcConnectionManager.java b/javasource/databaseconnector/impl/JdbcConnectionManager.java index 340caa3..3decf36 100644 --- a/javasource/databaseconnector/impl/JdbcConnectionManager.java +++ b/javasource/databaseconnector/impl/JdbcConnectionManager.java @@ -15,7 +15,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import java.util.Random; /** * Simple connection manager backed by HikariCP. It does not support shutdown at this moment that may lead to memory leak in case of From baa84c65532168f5e6353aa38b7342e9b922752a Mon Sep 17 00:00:00 2001 From: Arjen Wisse Date: Tue, 20 Jun 2017 11:51:30 +0200 Subject: [PATCH 3/3] Added name for connection pool --- javasource/databaseconnector/impl/JdbcConnectionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javasource/databaseconnector/impl/JdbcConnectionManager.java b/javasource/databaseconnector/impl/JdbcConnectionManager.java index 3decf36..858ec66 100644 --- a/javasource/databaseconnector/impl/JdbcConnectionManager.java +++ b/javasource/databaseconnector/impl/JdbcConnectionManager.java @@ -72,7 +72,7 @@ private Integer toConnPoolKey(final String jdbcUrl, final String userName) { private HikariDataSource createHikariDataSource(final String jdbcUrl, final String userName, final String password, Integer connPoolKey) { final HikariDataSource dataSource = new HikariDataSource(); - dataSource.setPoolName(""+ connPoolKey); + dataSource.setPoolName(String.format("MxDbConnector-HikaryCP-%d", connPoolKey)); dataSource.setJdbcUrl(jdbcUrl); dataSource.setUsername(userName); dataSource.setPassword(password);