diff --git a/java-extensions/jdbc-bridge/src/main/java/com/starrocks/jdbcbridge/JDBCScanner.java b/java-extensions/jdbc-bridge/src/main/java/com/starrocks/jdbcbridge/JDBCScanner.java index 6419c1a6fbc02..c3b3daf80a3c2 100644 --- a/java-extensions/jdbc-bridge/src/main/java/com/starrocks/jdbcbridge/JDBCScanner.java +++ b/java-extensions/jdbc-bridge/src/main/java/com/starrocks/jdbcbridge/JDBCScanner.java @@ -58,9 +58,9 @@ public JDBCScanner(String driverLocation, JDBCScanContext scanContext) { } public void open() throws Exception { - String key = scanContext.getUser() + "/" + scanContext.getJdbcURL(); + String cacheKey = computeCacheKey(scanContext.getUser(), scanContext.getPassword(), scanContext.getJdbcURL()); URL driverURL = new File(driverLocation).toURI().toURL(); - DataSourceCache.DataSourceCacheItem cacheItem = DataSourceCache.getInstance().getSource(key, () -> { + DataSourceCache.DataSourceCacheItem cacheItem = DataSourceCache.getInstance().getSource(cacheKey, () -> { ClassLoader classLoader = URLClassLoader.newInstance(new URL[] { driverURL, }); @@ -107,6 +107,10 @@ public void open() throws Exception { } } + private static String computeCacheKey(String username, String password, String jdbcUrl) { + return username + "/" + password + "/" + jdbcUrl; + } + private static final Set> GENERAL_JDBC_CLASS_SET = new HashSet<>(Arrays.asList( Boolean.class, Short.class,