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