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