CAMEL-8758: Fix to Camel Cache producer to avoid NPE in race condition

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

Branch: refs/heads/camel-2.14.x
Commit: 1199d04004311d9701911412c78128ff2059033f
Parents: 46b571b
Author: Andrew Block <andy.bl...@gmail.com>
Authored: Sat May 9 13:02:56 2015 -0500
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun May 10 09:13:50 2015 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/component/cache/CacheProducer.java    | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1199d040/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
 
b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
index 05d168c..95872c3 100755
--- 
a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
+++ 
b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
@@ -93,9 +93,10 @@ public class CacheProducer extends DefaultProducer {
             cache.remove(key);
         } else if (checkIsEqual(operation, 
CacheConstants.CACHE_OPERATION_URL_GET)) {
             LOG.debug("Quering an element with key {} from the Cache", key);
-            if (cache.get(key) != null) {
+            Element element = cache.get(key);
+            if (element != null) {
                 
exchange.getIn().setHeader(CacheConstants.CACHE_ELEMENT_WAS_FOUND, true);
-                exchange.getIn().setBody(cache.get(key).getObjectValue());
+                exchange.getIn().setBody(element.getObjectValue());
             } else {
                 
exchange.getIn().removeHeader(CacheConstants.CACHE_ELEMENT_WAS_FOUND);
             }

Reply via email to