You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/09/03 09:54:02 UTC

svn commit: r1380157 - /camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java

Author: ningjiang
Date: Mon Sep  3 07:54:01 2012
New Revision: 1380157

URL: http://svn.apache.org/viewvc?rev=1380157&view=rev
Log:
CAMEL-5556 fixed the thread issue of camel-hazelcast

Modified:
    camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java

Modified: camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java?rev=1380157&r1=1380156&r2=1380157&view=diff
==============================================================================
--- camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java (original)
+++ camel/trunk/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java Mon Sep  3 07:54:01 2012
@@ -24,7 +24,7 @@ import org.apache.camel.support.ServiceS
 public class HazelcastIdempotentRepository extends ServiceSupport implements IdempotentRepository<String> {
 
     private String repositoryName;
-    private IMap<String, Object> repo;
+    private IMap<String, Boolean> repo;
     private HazelcastInstance hazelcastInstance;
     
     public HazelcastIdempotentRepository(HazelcastInstance hazelcastInstance) {
@@ -48,22 +48,21 @@ public class HazelcastIdempotentReposito
 
     @Override
     public boolean add(String key) {
-        if (this.contains(key)) {
-            return false;
-        } else {
-            this.repo.put(key, false);
-            return true;
+
+        Boolean found = this.repo.get(key);
+        if (found == null) {
+            Boolean returned = this.repo.putIfAbsent(key, false);
+            if (returned == null) {
+                return true;
+            }
         }
+        return false;
+
     }
 
     @Override
     public boolean confirm(String key) {
-        if (this.contains(key)) {
-            this.repo.put(key, true);
-            return true;
-        } else {
-            return false;
-        }
+        return this.repo.replace(key, false, true);
     }
 
     @Override