Github user clebertsuconic commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/2416#discussion_r233483727
--- Diff:
artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionFactoryImpl.java
---
@@ -982,7 +982,13 @@ protected ConnectorFactory
instantiateConnectorFactory(final String connectorFac
return AccessController.doPrivileged(new
PrivilegedAction<ConnectorFactory>() {
@Override
public ConnectorFactory run() {
- return (ConnectorFactory)
ClassloadingUtil.newInstanceFromClassLoader(connectorFactoryClassName);
+ ClassLoader cl =
Thread.currentThread().getContextClassLoader();
--- End diff --
Couldn't you change ClassLoadingUtil as
```java
public static Object newInstanceFromClassLoader(final String className) {
return newInstanceFromClassLoader(ClassloadingUtil.class, className);
}
public static Object newInstanceFromClassLoader(Class classOwner, final
String className) {
ClassLoader loader = classOwner.getClassLoader();
try {
Class<?> clazz = loader.loadClass(className);
return clazz.newInstance();
} catch (Throwable t) {
if (t instanceof InstantiationException) {
System.out.println(INSTANTIATION_EXCEPTION_MESSAGE);
}
loader = Thread.currentThread().getContextClassLoader();
if (loader == null)
throw new RuntimeException("No local context classloader", t);
try {
return loader.loadClass(className).newInstance();
} catch (InstantiationException e) {
throw new RuntimeException(INSTANTIATION_EXCEPTION_MESSAGE + "
" + className, e);
} catch (ClassNotFoundException e) {
throw new IllegalStateException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
```
and pass in the class parameter on these cases?
Or would this have issues with Security on the JDK?
If there are no issues I would prefer the parameter added?
---