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.

Reply via email to