diff --git a/pgjdbc/src/main/java/com/yugabyte/ysql/LoadBalanceProperties.java b/pgjdbc/src/main/java/com/yugabyte/ysql/LoadBalanceProperties.java index ff1019a631..eeca1a15a8 100644 --- a/pgjdbc/src/main/java/com/yugabyte/ysql/LoadBalanceProperties.java +++ b/pgjdbc/src/main/java/com/yugabyte/ysql/LoadBalanceProperties.java @@ -58,7 +58,7 @@ public class LoadBalanceProperties { load-balance 'simple' to be used as KEY and for targeted topologies, value specified will be used as key */ - public static final Map CONNECTION_MANAGER_MAP = + private static final Map CONNECTION_MANAGER_MAP = new HashMap<>(); private static Map loadBalancePropertiesMap = @@ -74,6 +74,16 @@ public class LoadBalanceProperties { private int failedHostReconnectDelaySecs = -1; private boolean failedHostReconnectDelaySpecified; + /** + * FOR TEST PURPOSE ONLY + */ + static void clearConnectionManagerMap() { + LOGGER.warning("Clearing CONNECTION_MANAGER_MAP for testing purposes"); + synchronized (CONNECTION_MANAGER_MAP) { + CONNECTION_MANAGER_MAP.clear(); + } + } + public static LoadBalanceProperties getLoadBalanceProperties(String url, Properties properties) { LoadBalancerKey key = new LoadBalancerKey(url, properties); LoadBalanceProperties lbp = loadBalancePropertiesMap.get(key); diff --git a/pgjdbc/src/test/java/com/yugabyte/ysql/FallbackOptionsLBTest.java b/pgjdbc/src/test/java/com/yugabyte/ysql/FallbackOptionsLBTest.java index 8aafab2f9b..e1332f762f 100644 --- a/pgjdbc/src/test/java/com/yugabyte/ysql/FallbackOptionsLBTest.java +++ b/pgjdbc/src/test/java/com/yugabyte/ysql/FallbackOptionsLBTest.java @@ -1,7 +1,5 @@ package com.yugabyte.ysql; -import static com.yugabyte.ysql.LoadBalanceProperties.CONNECTION_MANAGER_MAP; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -67,7 +65,7 @@ private static void checkBasicBehavior() throws SQLException { createConnectionsAndVerify(baseUrl, "aws.us-west.us-west-2a:1,aws.us-west.us-west-2b:-2,aws" + ".us-west.us-west-2c:3", null); createConnectionsAndVerify(baseUrl, "aws.us-west.us-west-2a:1,aws.us-west.us-west-2b:2,aws" + ".us-west.us-west-2c:", null); } finally { - CONNECTION_MANAGER_MAP.clear(); + LoadBalanceProperties.clearConnectionManagerMap(); LoadBalanceService.clear(); executeCmd(path + "/bin/yb-ctl destroy", "Stop YugabyteDB cluster", 10); } @@ -104,7 +102,7 @@ private static void checkNodeDownBehavior() throws SQLException { createConnectionsAndVerify("jdbc:yugabytedb://127.0.0.4:5433/yugabyte?load-balance=true&fallback-to-topology-keys-only=true&topology-keys=", "aws.us-west.us-west-1a", expectedInput(-1, -1, -1, 12+1, 0, 0)); } finally { - CONNECTION_MANAGER_MAP.clear(); + LoadBalanceProperties.clearConnectionManagerMap(); LoadBalanceService.clear(); executeCmd(path + "/bin/yb-ctl destroy", "Stop YugabyteDB cluster", 10); } @@ -159,7 +157,7 @@ private static void checkNodeDownBehaviorMultiFallback() throws SQLException { createConnectionsAndVerify(url, tk, expectedInput(-1, 12, -1, -1, -1, +1, -1, -1, -1)); } finally { - CONNECTION_MANAGER_MAP.clear(); + LoadBalanceProperties.clearConnectionManagerMap(); LoadBalanceService.clear(); executeCmd(path + "/bin/yb-ctl destroy", "Stop YugabyteDB cluster", 10); } diff --git a/pgjdbc/src/test/java/com/yugabyte/ysql/LoadBalanceTest.java b/pgjdbc/src/test/java/com/yugabyte/ysql/LoadBalanceTest.java index d417d01170..91189958cb 100644 --- a/pgjdbc/src/test/java/com/yugabyte/ysql/LoadBalanceTest.java +++ b/pgjdbc/src/test/java/com/yugabyte/ysql/LoadBalanceTest.java @@ -1,7 +1,6 @@ package com.yugabyte.ysql; import static com.yugabyte.ysql.FallbackOptionsLBTest.*; -import static com.yugabyte.ysql.LoadBalanceProperties.CONNECTION_MANAGER_MAP; import java.sql.Connection; import java.sql.DriverManager; @@ -103,7 +102,7 @@ private static void testConcurrentConnectionCreations(String url, } finally { waitForSignal = true; - CONNECTION_MANAGER_MAP.clear(); + LoadBalanceProperties.clearConnectionManagerMap(); executeCmd(path + "/bin/yb-ctl destroy", "Stop YugabyteDB cluster", 15); } }