CAMEL-8689: Fixed failing test due recent changes.

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/95e9cdd6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/95e9cdd6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/95e9cdd6

Branch: refs/heads/camel-2.14.x
Commit: 95e9cdd69d5db4373d4367d9f7dff7ba40a43151
Parents: 0a8d456
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed May 6 12:51:09 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed May 6 12:53:26 2015 +0200

----------------------------------------------------------------------
 .../dozer/DozerThreadContextClassLoader.java    | 11 ++++++---
 .../converter/dozer/DozerTypeConverter.java     | 24 +++++++++++++-------
 2 files changed, 24 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/95e9cdd6/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerThreadContextClassLoader.java
----------------------------------------------------------------------
diff --git 
a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerThreadContextClassLoader.java
 
b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerThreadContextClassLoader.java
index e5d89e1..b5d9806 100644
--- 
a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerThreadContextClassLoader.java
+++ 
b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerThreadContextClassLoader.java
@@ -55,11 +55,16 @@ public class DozerThreadContextClassLoader implements 
DozerClassLoader {
 
     @Override
     public URL loadResource(String uri) {
-        LOG.debug("Loading resource from classloader: {}.", 
Thread.currentThread().getContextClassLoader());
-        URL answer = 
Thread.currentThread().getContextClassLoader().getResource(uri);
+        URL answer = null;
+
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if (cl != null) {
+            LOG.debug("Loading resource from classloader: {}.", cl);
+            answer = cl.getResource(uri);
+        }
 
         // try loading it from the delegate
-        if (answer == null) {
+        if (answer == null && delegate != null) {
             answer = delegate.loadResource(uri);
         }
         

http://git-wip-us.apache.org/repos/asf/camel/blob/95e9cdd6/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverter.java
----------------------------------------------------------------------
diff --git 
a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverter.java
 
b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverter.java
index 3bc6135..28a35e5 100644
--- 
a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverter.java
+++ 
b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverter.java
@@ -57,18 +57,26 @@ public class DozerTypeConverter extends 
TypeConverterSupport {
             return mapper.map(value, type);
         }
         
-        // otherwise, we ensure that the TCCL is the correct one
-        T answer;
+        T answer = null;
+
         ClassLoader prev = Thread.currentThread().getContextClassLoader();
         ClassLoader contextCl = 
exchange.getContext().getApplicationContextClassLoader();
-        LOG.debug("Switching TCCL to: {}.", contextCl);
-        try {
-            Thread.currentThread().setContextClassLoader(contextCl);
+        if (contextCl != null) {
+            // otherwise, we ensure that the TCCL is the correct one
+            LOG.debug("Switching TCCL to: {}.", contextCl);
+            try {
+                Thread.currentThread().setContextClassLoader(contextCl);
+                answer = mapper.map(value, type);
+            } finally {
+                LOG.debug("Restored TCCL to: {}.", prev);
+                Thread.currentThread().setContextClassLoader(prev);
+            }
+        } else {
+            // just try with the current TCCL as-is
             answer = mapper.map(value, type);
-        } finally {
-            LOG.debug("Restored TCCL to: {}.", prev);
-            Thread.currentThread().setContextClassLoader(prev);
         }
+
         return answer;
     }
+
 }

Reply via email to