Repository: camel
Updated Branches:
  refs/heads/master 1c20c435e -> d58024b49


CAMEL-8728: Hazelcast idempotent repository - Should use locks


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

Branch: refs/heads/master
Commit: 5d5c5a4d15a21d0df5b092f5cbcc34411e948540
Parents: 78ccf13
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri May 1 15:34:08 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun May 3 10:52:34 2015 +0200

----------------------------------------------------------------------
 .../hazelcast/map/HazelcastMapProducer.java     |  1 -
 .../HazelcastIdempotentRepository.java          | 31 ++++++++++----------
 2 files changed, 16 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5d5c5a4d/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
index 6d0921d..d0911ff 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java
@@ -116,7 +116,6 @@ public class HazelcastMapProducer extends 
HazelcastDefaultProducer {
 
         // finally copy headers
         HazelcastComponentHelper.copyHeaders(exchange);
-
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/5d5c5a4d/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
index b73757a..a8c1003 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
@@ -48,21 +48,22 @@ public class HazelcastIdempotentRepository extends 
ServiceSupport implements Ide
 
     @Override
     public boolean add(String key) {
-
-        Boolean found = this.repo.get(key);
-        if (found == null) {
-            Boolean returned = this.repo.putIfAbsent(key, false);
-            if (returned == null) {
-                return true;
-            }
+        repo.lock(key);
+        try {
+            return repo.putIfAbsent(key, false) == null;
+        } finally {
+            repo.unlock(key);
         }
-        return false;
-
     }
 
     @Override
     public boolean confirm(String key) {
-        return this.repo.replace(key, false, true);
+        repo.lock(key);
+        try {
+            return repo.replace(key, false, true);
+        } finally {
+            repo.unlock(key);
+        }
     }
 
     @Override
@@ -72,11 +73,11 @@ public class HazelcastIdempotentRepository extends 
ServiceSupport implements Ide
 
     @Override
     public boolean remove(String key) {
-        if (this.contains(key)) {
-            this.repo.remove(key);
-            return true;
-        } else {
-            return false;
+        repo.lock(key);
+        try {
+            return repo.remove(key) != null;
+        } finally {
+            repo.unlock(key);
         }
     }
 

Reply via email to