diff --git a/plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java b/plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java index 47be4758221c30581734353565135e3a9876a272..304a3277f2ff215250146493c85ef989bd4f2518 100644 --- a/plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java +++ b/plugins/org.jkiss.dbeaver.registry/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java @@ -1075,7 +1075,11 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver { libraryURLs.add(url); } // Make class loader - this.classLoader = new DriverClassLoader(this, libraryURLs.toArray(new URL[0]), rootClassLoader); + this.classLoader = new DriverClassLoader( + this, + libraryURLs.toArray(new URL[0]), + rootClassLoader != null ? rootClassLoader : getDataSourceProvider().getClass().getClassLoader() + ); } private static synchronized void loadGlobalLibraries() { @@ -1088,6 +1092,10 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver { log.error("Can't load global library '" + library + "'", e); } } + if (libraries.isEmpty()) { + // No point in creating redundant classloader + return; + } rootClassLoader = new URLClassLoader(libraries.toArray(new URL[0]), DriverDescriptor.class.getClassLoader()); } }