Repository: camel
Updated Branches:
  refs/heads/master e49c560a6 -> e1f7fded2


CAMEL-8204 Polish the code as Claus suggested.


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

Branch: refs/heads/master
Commit: e1f7fded2b7bb834841975610cce1350a19b9e78
Parents: ad1bce1
Author: Willem Jiang <[email protected]>
Authored: Mon Jan 5 10:02:01 2015 +0800
Committer: Willem Jiang <[email protected]>
Committed: Mon Jan 5 10:02:55 2015 +0800

----------------------------------------------------------------------
 camel-core/src/main/java/org/apache/camel/TimeoutMap.java    | 4 +++-
 .../java/org/apache/camel/support/DefaultTimeoutMap.java     | 5 +++--
 .../camel/component/jms/reply/CorrelationTimeoutMap.java     | 8 +++++---
 .../apache/camel/component/jms/reply/QueueReplyManager.java  | 6 +++---
 .../component/jms/reply/TemporaryQueueReplyManager.java      | 4 ++--
 5 files changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e1f7fded/camel-core/src/main/java/org/apache/camel/TimeoutMap.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/TimeoutMap.java 
b/camel-core/src/main/java/org/apache/camel/TimeoutMap.java
index e76ed37..ef5bda3 100644
--- a/camel-core/src/main/java/org/apache/camel/TimeoutMap.java
+++ b/camel-core/src/main/java/org/apache/camel/TimeoutMap.java
@@ -52,8 +52,10 @@ public interface TimeoutMap<K, V> extends Runnable {
      * @param key   the key
      * @param value the value
      * @param timeoutMillis  timeout in millis
+     * @return the previous value associated with <tt>key</tt>, or
+     *         <tt>null</tt> if there was no mapping for <tt>key</tt>.
      */
-    void put(K key, V value, long timeoutMillis);
+    V put(K key, V value, long timeoutMillis);
 
     /**
      * Callback when the value has been evicted

http://git-wip-us.apache.org/repos/asf/camel/blob/e1f7fded/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java 
b/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
index 94e4026..57462f1 100644
--- a/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
+++ b/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
@@ -94,14 +94,15 @@ public class DefaultTimeoutMap<K, V> extends ServiceSupport 
implements TimeoutMa
         return entry.getValue();
     }
 
-    public void put(K key, V value, long timeoutMillis) {
+    public V put(K key, V value, long timeoutMillis) {
         TimeoutMapEntry<K, V> entry = new TimeoutMapEntry<K, V>(key, value, 
timeoutMillis);
         if (useLock) {
             lock.lock();
         }
         try {
-            map.put(key, entry);
             updateExpireTime(entry);
+            TimeoutMapEntry<K, V> result = map.put(key, entry);
+            return result != null ? result.getValue() : null;
         } finally {
             if (useLock) {
                 lock.unlock();

http://git-wip-us.apache.org/repos/asf/camel/blob/e1f7fded/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/CorrelationTimeoutMap.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/CorrelationTimeoutMap.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/CorrelationTimeoutMap.java
index 3d86be1..d72c8d0 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/CorrelationTimeoutMap.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/CorrelationTimeoutMap.java
@@ -70,7 +70,7 @@ public class CorrelationTimeoutMap extends 
DefaultTimeoutMap<String, ReplyHandle
     }
 
     @Override
-    public void put(String key, ReplyHandler value, long timeoutMillis) {
+    public ReplyHandler put(String key, ReplyHandler value, long 
timeoutMillis) {
         try {
             if (listener != null) {
                 listener.onPut(key);
@@ -79,13 +79,15 @@ public class CorrelationTimeoutMap extends 
DefaultTimeoutMap<String, ReplyHandle
             // ignore
         }
 
+        ReplyHandler result;
         if (timeoutMillis <= 0) {
             // no timeout (must use Integer.MAX_VALUE)
-            super.put(key, value, Integer.MAX_VALUE);
+            result = super.put(key, value, Integer.MAX_VALUE);
         } else {
-            super.put(key, value, timeoutMillis);
+            result = super.put(key, value, timeoutMillis);
         }
         log.trace("Added correlationID: {} to timeout after: {} millis", key, 
timeoutMillis);
+        return result;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/e1f7fded/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
index 59513b2..e494b83 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
@@ -51,10 +51,10 @@ public class QueueReplyManager extends ReplyManagerSupport {
         // add to correlation map
         QueueReplyHandler handler = new QueueReplyHandler(replyManager, 
exchange, callback,
                 originalCorrelationId, correlationId, requestTimeout);
-        if (correlation.get(correlationId) != null) {
-            log.error("The correlationId [{}] is not unique, some reply 
message would be ignored and the request thread could be blocked.", 
correlationId);
+        ReplyHandler result = correlation.put(correlationId, handler, 
requestTimeout);
+        if (result != null) {
+            log.warn("The correlationId [{}] is not unique, some reply message 
would be ignored and the request thread could be blocked.", correlationId);
         }
-        correlation.put(correlationId, handler, requestTimeout);
         return correlationId;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/e1f7fded/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
index 269b8fe..788994b 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
@@ -61,10 +61,10 @@ public class TemporaryQueueReplyManager extends 
ReplyManagerSupport {
                                 String originalCorrelationId, String 
correlationId, long requestTimeout) {
         // add to correlation map
         TemporaryQueueReplyHandler handler = new 
TemporaryQueueReplyHandler(this, exchange, callback, originalCorrelationId, 
correlationId, requestTimeout);
-        if (correlation.get(correlationId) != null) {
+        ReplyHandler result = correlation.put(correlationId, handler, 
requestTimeout);
+        if (result != null) {
             log.error("The correlationId [{}] is not unique, some reply 
message would be ignored and the request thread could be blocked.", 
correlationId);
         }
-        correlation.put(correlationId, handler, requestTimeout);
         return correlationId;
     }
 

Reply via email to