Repository: camel
Updated Branches:
  refs/heads/master 8163a8f0e -> 5481b9cf8


CAMEL-8010:Included onSubmitCompletion in the lock section to prevent race 
condiditon


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

Branch: refs/heads/master
Commit: 45403daaf4f47104a59962ff4aebfdef2adf5f7c
Parents: 655c771
Author: Rajithamol <[email protected]>
Authored: Fri Aug 18 15:24:41 2017 -0400
Committer: Andrea Cosentino <[email protected]>
Committed: Thu Aug 24 11:18:46 2017 +0200

----------------------------------------------------------------------
 .../camel/processor/aggregate/AggregateProcessor.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/45403daa/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
index 6d2c5a3..236665e 100644
--- 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
+++ 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
@@ -346,16 +346,16 @@ public class AggregateProcessor extends ServiceSupport 
implements AsyncProcessor
             lock.lock();
             try {
                 aggregated = doAggregation(key, copy);
+                // we are completed so do that work outside the lock
+                if (aggregated != null) {
+                    for (Exchange agg : aggregated) {
+                        onSubmitCompletion(key, agg);
+                    }
+                }
             } finally {
                 lock.unlock();
             }
 
-            // we are completed so do that work outside the lock
-            if (aggregated != null) {
-                for (Exchange agg : aggregated) {
-                    onSubmitCompletion(key, agg);
-                }
-            }
         }
 
         // check for the special header to force completion of all groups 
(inclusive of the message)

Reply via email to