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 2016/08/03 15:00:34 UTC

[2/2] camel git commit: Reduce length of stacktraces

Reduce length of stacktraces


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

Branch: refs/heads/master
Commit: 0f5b5816140caad8e541b5c4acddcc3c948f91b0
Parents: bae087e
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Aug 3 15:38:04 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Aug 3 15:38:04 2016 +0200

----------------------------------------------------------------------
 .../camel/processor/DelegateAsyncProcessor.java  | 19 +++++++++++++++++--
 .../camel/processor/RedeliveryErrorHandler.java  |  3 ++-
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0f5b5816/camel-core/src/main/java/org/apache/camel/processor/DelegateAsyncProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/DelegateAsyncProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/DelegateAsyncProcessor.java
index ddca1fe..3abee6e 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/DelegateAsyncProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/DelegateAsyncProcessor.java
@@ -18,6 +18,7 @@ package org.apache.camel.processor;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.CountDownLatch;
 
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.AsyncProcessor;
@@ -25,9 +26,9 @@ import org.apache.camel.DelegateProcessor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Navigate;
 import org.apache.camel.Processor;
+import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.AsyncProcessorConverterHelper;
-import org.apache.camel.util.AsyncProcessorHelper;
 import org.apache.camel.util.ServiceHelper;
 
 /**
@@ -88,7 +89,21 @@ public class DelegateAsyncProcessor extends ServiceSupport implements DelegatePr
     }
 
     public void process(Exchange exchange) throws Exception {
-        AsyncProcessorHelper.process(this, exchange);
+        // inline org.apache.camel.util.AsyncProcessorHelper.process(org.apache.camel.AsyncProcessor, org.apache.camel.Exchange)
+        // to optimize and reduce stacktrace lengths
+        final AsyncProcessorAwaitManager awaitManager = exchange.getContext().getAsyncProcessorAwaitManager();
+        final CountDownLatch latch = new CountDownLatch(1);
+        // call the asynchronous method and wait for it to be done
+        boolean sync = process(exchange, new AsyncCallback() {
+            public void done(boolean doneSync) {
+                if (!doneSync) {
+                    awaitManager.countDown(exchange, latch);
+                }
+            }
+        });
+        if (!sync) {
+            awaitManager.await(exchange, latch);
+        }
     }
 
     public boolean process(final Exchange exchange, final AsyncCallback callback) {

http://git-wip-us.apache.org/repos/asf/camel/blob/0f5b5816/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
index 847b9c5..5834b0a 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
@@ -67,6 +67,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
     protected final AtomicInteger redeliverySleepCounter = new AtomicInteger();
     protected ScheduledExecutorService executorService;
     protected final CamelContext camelContext;
+    protected final AsyncProcessorAwaitManager awaitManager;
     protected final Processor deadLetter;
     protected final String deadLetterUri;
     protected final boolean deadLetterHandleNewException;
@@ -263,6 +264,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
         ObjectHelper.notNull(redeliveryPolicy, "RedeliveryPolicy", this);
 
         this.camelContext = camelContext;
+        this.awaitManager = camelContext.getAsyncProcessorAwaitManager();
         this.redeliveryProcessor = redeliveryProcessor;
         this.deadLetter = deadLetter;
         this.output = output;
@@ -394,7 +396,6 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme
 
         // inline org.apache.camel.util.AsyncProcessorHelper.process(org.apache.camel.AsyncProcessor, org.apache.camel.Exchange)
         // to optimize and reduce stacktrace lengths
-        final AsyncProcessorAwaitManager awaitManager = exchange.getContext().getAsyncProcessorAwaitManager();
         final CountDownLatch latch = new CountDownLatch(1);
         boolean sync = process(exchange, new AsyncCallback() {
             public void done(boolean doneSync) {