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 2013/02/27 13:00:18 UTC

svn commit: r1450754 - /camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java

Author: davsclaus
Date: Wed Feb 27 12:00:17 2013
New Revision: 1450754

URL: http://svn.apache.org/r1450754
Log:
CAMEL-6042: Fixed aggregator to set the correlated key on the exchange properties before removing, as its needed by custom aggregation repositories to be presented before remove is called.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java?rev=1450754&r1=1450753&r2=1450754&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java Wed Feb 27 12:00:17 2013
@@ -416,12 +416,15 @@ public class AggregateProcessor extends 
     }
 
     protected void onCompletion(final String key, final Exchange original, final Exchange aggregated, boolean fromTimeout) {
+        // store the correlation key as property before we remove so the repository has that information
+        if (original != null) {
+            original.setProperty(Exchange.AGGREGATED_CORRELATION_KEY, key);
+        }
+        aggregated.setProperty(Exchange.AGGREGATED_CORRELATION_KEY, key);
+
         // remove from repository as its completed, we do this first as to trigger any OptimisticLockingException's
         aggregationRepository.remove(aggregated.getContext(), key, original);
 
-        // store the correlation key as property
-        aggregated.setProperty(Exchange.AGGREGATED_CORRELATION_KEY, key);
-
         if (!fromTimeout && timeoutMap != null) {
             // cleanup timeout map if it was a incoming exchange which triggered the timeout (and not the timeout checker)
             timeoutMap.remove(key);