[fix](jdbc catalog) Fix ClassLoader Scope in JdbcExecutor Initialization (#34620)
This commit is contained in:
@ -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());
|
||||
|
||||
@ -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());
|
||||
|
||||
Reference in New Issue
Block a user