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/655ac47f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/655ac47f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/655ac47f

Branch: refs/heads/camel-2.13.x
Commit: 655ac47ffe3101836f16bc859d1fb87188a3eef8
Parents: 57d8a76
Author: Willem Jiang <[email protected]>
Authored: Mon Jan 5 10:02:01 2015 +0800
Committer: Willem Jiang <[email protected]>
Committed: Mon Jan 5 10:20:19 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/655ac47f/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/655ac47f/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 7dd60ee..6dcaf1d 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/655ac47f/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/655ac47f/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/655ac47f/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 583b63f..5f77591 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