You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/12/19 13:33:31 UTC

svn commit: r1220717 - in /camel/branches/camel-2.8.x: ./ camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java

Author: davsclaus
Date: Mon Dec 19 12:33:31 2011
New Revision: 1220717

URL: http://svn.apache.org/viewvc?rev=1220717&view=rev
Log:
CAMEL-4795: Fixed issue with throttler/delayer in async delayed mode, calling exchange done 2 times under certain conditions.

Added:
    camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java
      - copied, changed from r1220711, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 19 12:33:31 2011
@@ -1 +1 @@
-/camel/trunk:1202148,1202167,1202204-1202206,1202214-1202215,1202223,1202659,1202685,1203879,1203978,1204338,1205124,1205372,1205412,1205429,1205431,1205713,1206116,1206414,1207743,1207784,1208301,1208930,1208964-1208965,1209006-1209007,1209382,1209401,1209477,1209845-1209846,1210113,1210391,1210771,1210830,1211363,1211414,1211773,1211811,1212275-1212276,1212408,1213197,1213219,1213232,1213526,1214132,1214639,1214743,1215240,1215448,1215482
+/camel/trunk:1202148,1202167,1202204-1202206,1202214-1202215,1202223,1202659,1202685,1203879,1203978,1204338,1205124,1205372,1205412,1205429,1205431,1205713,1206116,1206414,1207743,1207784,1208301,1208930,1208964-1208965,1209006-1209007,1209382,1209401,1209477,1209845-1209846,1210113,1210391,1210771,1210830,1211363,1211414,1211773,1211811,1212275-1212276,1212408,1213197,1213219,1213232,1213526,1214132,1214639,1214743,1215240,1215448,1215482,1220711

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java?rev=1220717&r1=1220716&r2=1220717&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java Mon Dec 19 12:33:31 2011
@@ -57,9 +57,18 @@ public abstract class DelayProcessorSupp
             if (!isRunAllowed()) {
                 exchange.setException(new RejectedExecutionException("Run is not allowed"));
             }
-            DelayProcessorSupport.super.process(exchange, callback);
-            // signal callback we are done async
-            callback.done(false);
+
+            // process the exchange now that we woke up
+            DelayProcessorSupport.super.process(exchange, new AsyncCallback() {
+                @Override
+                public void done(boolean doneSync) {
+                    log.trace("Delayed task done for exchangeId: {}", exchange.getExchangeId());
+                    // we must done the callback from this async callback as well, to ensure callback is done correctly
+                    // must invoke done on callback with false, as that is what the original caller would
+                    // expect as we returned false in the process method
+                    callback.done(false);
+                }
+            });
         }
     }
 

Copied: camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java (from r1220711, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java)
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java?p2=camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java&r1=1220711&r2=1220717&rev=1220717&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointDelayUoWTest.java Mon Dec 19 12:33:31 2011
@@ -22,7 +22,7 @@ import org.apache.camel.ContextTestSuppo
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.support.SynchronizationAdapter;
+import org.apache.camel.impl.SynchronizationAdapter;
 
 /**
  * @version