summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java7
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);
}