diff options
Diffstat (limited to 'java/sca')
-rw-r--r-- | java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java index 5273921688..6846d61c5b 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java +++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java @@ -190,7 +190,7 @@ public class Axis2ServiceProvider { protected Class<?> findClass(String className) throws ClassNotFoundException { for (ClassLoader parent : classLoaders) { try { - parent.loadClass(className); + return parent.loadClass(className); } catch (ClassNotFoundException e) { continue; } @@ -248,7 +248,10 @@ public class Axis2ServiceProvider { ClassLoader cl2 = modelFactories.getFactory(DocumentBuilderFactory.class).getClass().getClassLoader(); ClassLoader tccl = Thread.currentThread().getContextClassLoader(); - ClassLoader newTccl = new MultiParentClassLoader(tccl, new ClassLoader[] {cl1, cl2}); + ClassLoader newTccl = tccl; + if (cl1 != tccl || cl2 != tccl) { + newTccl = new MultiParentClassLoader(null, new ClassLoader[] {cl1, cl2}); + } if (newTccl != null && newTccl != tccl) { Thread.currentThread().setContextClassLoader(newTccl); } |