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); }