org.apache.axis2.deployment.DeploymentEngine cannot run under JNI
-----------------------------------------------------------------
Key: AXIS2-4520
URL: https://issues.apache.org/jira/browse/AXIS2-4520
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: kernel
Affects Versions: 1.5
Environment: Windows Server 2003, Java 1.5_14
Reporter: Per Agerbæk
Priority: Blocker
When running in a thread created by JNI the
Thread.currentThread().getContextClassLoader() return null, which in turn gives
this
Caused by: java.lang.RuntimeException: parent[0] is null
at
org.apache.axis2.classloader.MultiParentClassLoader.copyParents(MultiParentClassLoader.java:182)
at
org.apache.axis2.classloader.MultiParentClassLoader.<init>(MultiParentClassLoader.java:105)
at
org.apache.axis2.classloader.MultiParentClassLoader.<init>(MultiParentClassLoader.java:76)
at
org.apache.axis2.classloader.JarFileClassLoader.<init>(JarFileClassLoader.java:66)
at org.apache.axis2.deployment.util.Utils$6.run(Utils.java:348)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis2.deployment.util.Utils.getClassLoader(Utils.java:344)
at org.apache.axis2.deployment.util.Utils.getClassLoader(Utils.java:309)
at
org.apache.axis2.deployment.DeploymentEngine.setClassLoaders(DeploymentEngine.java:863)
at
org.apache.axis2.deployment.DeploymentEngine.loadRepository(DeploymentEngine.java:146)
at
org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:133)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:206)
I fixed it by changing lines 863 - 866 in
modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
ClassLoader sysClassLoader =
Utils.getClassLoader(Thread.currentThread().getContextClassLoader(),
axis2repoURI, false);
axisConfig.setSystemClassLoader(sysClassLoader);
by
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
if (classLoader == null)
classLoader = ClassLoader.getSystemClassLoader();
ClassLoader sysClassLoader = Utils.getClassLoader(classLoader,
axis2repoURI);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.