Author: veithen
Date: Sat Sep 12 20:14:39 2015
New Revision: 1702678

URL: http://svn.apache.org/r1702678
Log:
AXIS2-5720: Don't create a class loader that attempts to load libraries from 
WEB-INF/lib.

Modified:
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1702678&r1=1702677&r2=1702678&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
 Sat Sep 12 20:14:39 2015
@@ -800,11 +800,13 @@ public abstract class DeploymentEngine i
      * @throws DeploymentException if there's a problem
      */
     protected void setClassLoaders(String axis2repoURI) throws 
DeploymentException {
-        ClassLoader sysClassLoader =
-                
Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), 
axis2repoURI,
-                        axisConfig.isChildFirstClassLoading());
-
-        axisConfig.setSystemClassLoader(sysClassLoader);
+        if (axisConfig.getSystemClassLoader() == null) {
+            ClassLoader sysClassLoader =
+                    
Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), 
axis2repoURI,
+                            axisConfig.isChildFirstClassLoading());
+    
+            axisConfig.setSystemClassLoader(sysClassLoader);
+        }
         if (servicesDir.exists()) {
             axisConfig.setServiceClassLoader(
                     Utils.getClassLoader(axisConfig.getSystemClassLoader(), 
servicesDir,

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java?rev=1702678&r1=1702677&r2=1702678&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
 Sat Sep 12 20:14:39 2015
@@ -226,6 +226,10 @@ public class WarBasedAxisConfigurator ex
                     }
                 }
                 if (repository != null) {
+                    // WEB-INF contains a lib folder, but we don't want to 
create a class loader that
+                    // attempts to load libraries from there (in particular 
with parent last as class
+                    // loading policy).
+                    
axisConfig.setSystemClassLoader(Thread.currentThread().getContextClassLoader());
                     loadRepository(repository);
                     log.debug("loaded repository from /WEB-INF folder 
(unpacked war)");
                 }
@@ -235,6 +239,7 @@ public class WarBasedAxisConfigurator ex
                 URL url = config.getServletContext().getResource("/WEB-INF/");
                 if (url != null) {
                     repository = url.toString();
+                    
axisConfig.setSystemClassLoader(Thread.currentThread().getContextClassLoader());
                     loadRepositoryFromURL(url);
                     log.debug("loaded repository from /WEB-INF/ folder (URL)");
                 }


Reply via email to