Author: ningjiang Date: Tue Sep 4 01:17:18 2012 New Revision: 1380418 URL: http://svn.apache.org/viewvc?rev=1380418&view=rev Log: Merged revisions 1380157 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk
........ r1380157 | ningjiang | 2012-09-03 15:54:01 +0800 (Mon, 03 Sep 2012) | 1 line CAMEL-5556 fixed the thread issue of camel-hazelcast ........ Modified: camel/branches/camel-2.10.x/ (props changed) camel/branches/camel-2.10.x/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Merged /camel/trunk:r1380157 Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.10.x/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java?rev=1380418&r1=1380417&r2=1380418&view=diff ============================================================================== --- camel/branches/camel-2.10.x/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java (original) +++ camel/branches/camel-2.10.x/components/camel-hazelcast/src/main/java/org/apache/camel/processor/idempotent/hazelcast/HazelcastIdempotentRepository.java Tue Sep 4 01:17:18 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