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; } + }