Small optimization about UoW to compute isExternalRedeliveried only once as JMX performance statis will otherwise repeativly calculate this on each complete.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bbaa6ea9 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bbaa6ea9 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bbaa6ea9 Branch: refs/heads/master Commit: bbaa6ea933ca05470a730cf065ad318309a0f5c7 Parents: b16a262 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri May 26 18:24:25 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat May 27 09:03:47 2017 +0200 ---------------------------------------------------------------------- .../src/main/java/org/apache/camel/impl/DefaultExchange.java | 4 ---- .../src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java | 6 ++++-- 2 files changed, 4 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/bbaa6ea9/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java index f43396a..c1a5c39 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java @@ -429,10 +429,6 @@ public final class DefaultExchange implements Exchange { Message msg = getIn(); if (msg instanceof DefaultMessage) { answer = ((DefaultMessage) msg).isTransactedRedelivered(); - if (answer != null) { - // store as property to keep around - setProperty(Exchange.EXTERNAL_REDELIVERED, answer); - } } } http://git-wip-us.apache.org/repos/asf/camel/blob/bbaa6ea9/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java index cb7e2a8..f8f0971 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java @@ -116,9 +116,11 @@ public class DefaultUnitOfWork implements UnitOfWork, Service { // store as property so we know that the origin exchange was redelivered if (exchange.getProperty(Exchange.EXTERNAL_REDELIVERED) == null) { Boolean redelivered = exchange.isExternalRedelivered(); - if (redelivered != null) { - exchange.setProperty(Exchange.EXTERNAL_REDELIVERED, redelivered); + if (redelivered == null) { + // not from a transactional resource so mark it as false by default + redelivered = false; } + exchange.setProperty(Exchange.EXTERNAL_REDELIVERED, redelivered); } // fire event