[fix](jdbc catalog) Fix ClassLoader Scope in JdbcExecutor Initialization (#34620)

This commit is contained in:
zy-kkk
2024-05-10 11:24:39 +08:00
committed by GitHub
parent 22da62a6d5
commit fcbdd77f78
2 changed files with 2 additions and 2 deletions

View File

@ -308,13 +308,13 @@ public abstract class BaseJdbcExecutor implements JdbcExecutor {
try {
ClassLoader parent = getClass().getClassLoader();
ClassLoader classLoader = UdfUtils.getClassLoader(config.getJdbcDriverUrl(), parent);
Thread.currentThread().setContextClassLoader(classLoader);
hikariDataSource = JdbcDataSource.getDataSource().getSource(hikariDataSourceKey);
if (hikariDataSource == null) {
synchronized (hikariDataSourceLock) {
hikariDataSource = JdbcDataSource.getDataSource().getSource(hikariDataSourceKey);
if (hikariDataSource == null) {
long start = System.currentTimeMillis();
Thread.currentThread().setContextClassLoader(classLoader);
HikariDataSource ds = new HikariDataSource();
ds.setDriverClassName(config.getJdbcDriverClass());
ds.setJdbcUrl(config.getJdbcUrl());

View File

@ -352,13 +352,13 @@ public class DefaultJdbcExecutor {
} else {
ClassLoader parent = getClass().getClassLoader();
ClassLoader classLoader = UdfUtils.getClassLoader(config.getJdbcDriverUrl(), parent);
Thread.currentThread().setContextClassLoader(classLoader);
hikariDataSource = JdbcDataSource.getDataSource().getSource(hikariDataSourceKey);
if (hikariDataSource == null) {
synchronized (hikariDataSourceLock) {
hikariDataSource = JdbcDataSource.getDataSource().getSource(hikariDataSourceKey);
if (hikariDataSource == null) {
long start = System.currentTimeMillis();
Thread.currentThread().setContextClassLoader(classLoader);
HikariDataSource ds = new HikariDataSource();
ds.setDriverClassName(config.getJdbcDriverClass());
ds.setJdbcUrl(config.getJdbcUrl());