This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-13636
in repository https://gitbox.apache.org/repos/asf/camel.git

commit e81a4ca9eff14321cd2057dcda217474b7fdcf8a
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Jun 12 12:44:59 2019 +0200

    CAMEL-13636: camel3 - SPI for ReactiveHelper so we can plugin different 
reactive engines
---
 .../java/org/apache/camel/support/ReactiveHelper.java  | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ReactiveHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/ReactiveHelper.java
index 7e05636..06db5e6 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ReactiveHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ReactiveHelper.java
@@ -22,6 +22,9 @@ import org.apache.camel.AsyncCallback;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * A basic reactive engine that uses a worker pool to process tasks.
+ */
 public final class ReactiveHelper {
 
     private static final ThreadLocal<Worker> WORKERS = 
ThreadLocal.withInitial(Worker::new);
@@ -51,6 +54,10 @@ public final class ReactiveHelper {
         WORKERS.get().schedule(describe(runnable, description), true, false, 
false);
     }
 
+    /**
+     * @deprecated not in use
+     */
+    @Deprecated
     public static void scheduleLast(Runnable runnable, String description) {
         WORKERS.get().schedule(describe(runnable, description), false, false, 
false);
     }
@@ -91,9 +98,9 @@ public final class ReactiveHelper {
 
     private static class Worker {
 
-        LinkedList<Runnable> queue = new LinkedList<>();
-        LinkedList<LinkedList<Runnable>> back;
-        boolean running;
+        private volatile LinkedList<Runnable> queue = new LinkedList<>();
+        private volatile LinkedList<LinkedList<Runnable>> back;
+        private volatile boolean running;
 
         public void schedule(Runnable runnable, boolean first, boolean main, 
boolean sync) {
             if (main) {
@@ -129,7 +136,7 @@ public final class ReactiveHelper {
 //                            thread.setName(name + " - " + polled.toString());
                             polled.run();
                         } catch (Throwable t) {
-                            t.printStackTrace();
+                            LOG.warn("Error executing reactive work due to " + 
t.getMessage() + ". This exception is ignored.", t);
                         }
                     }
                 } finally {
@@ -152,7 +159,8 @@ public final class ReactiveHelper {
                 thread.setName(name + " - " + polled.toString());
                 polled.run();
             } catch (Throwable t) {
-                t.printStackTrace();
+                // should not happen
+                LOG.warn("Error executing reactive work due to " + 
t.getMessage() + ". This exception is ignored.", t);
             } finally {
                 thread.setName(name);
             }

Reply via email to