You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2015/09/12 22:14:40 UTC

svn commit: r1702678 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java WarBasedAxisConfigurator.java

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)");
                 }