[09/15] camel git commit: CAMEL-11229 Infinite recursion if exception hap...
CAMEL-11229 Infinite recursion if exception hap... ...pens inside exception handler A bit simpler unit test and reformatted source code. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/02f41cdb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/02f41cdb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/02f41cdb Branch: refs/heads/camel-2.18.x Commit: 02f41cdbc9db51171e45f582fb733f6dba18fa18 Parents: 5491f48 Author: Zoran RegvartAuthored: Mon May 8 11:54:59 2017 +0200 Committer: Claus Ibsen Committed: Thu May 11 18:41:43 2017 +0200 -- .../camel/processor/RedeliveryErrorHandler.java | 75 +++- .../onexception/OnExceptionRecursionTest.java | 48 ++--- 2 files changed, 47 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/02f41cdb/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 32a1bbe..7e978de 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 @@ -854,50 +854,55 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme Throwable origExceptionCaught = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class); if (origExceptionCaught != null) { -log.error("Second Exception occured inside exception handler. Failing exchange", e); +log.error("Second Exception occurred inside exception handler. Failing exchange", e); exchange.setProperty(Exchange.UNIT_OF_WORK_EXHAUSTED, true); } else { // store the original caused exception in a property, so we can restore it later exchange.setProperty(Exchange.EXCEPTION_CAUGHT, e); -// find the error handler to use (if any) -OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); -if (exceptionPolicy != null) { -data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), data.currentRedeliveryPolicy); -data.handledPredicate = exceptionPolicy.getHandledPolicy(); -data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); -data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); -data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null && exceptionPolicy.getUseOriginalMessagePolicy(); - -// route specific failure handler? -Processor processor = null; -UnitOfWork uow = exchange.getUnitOfWork(); -if (uow != null && uow.getRouteContext() != null) { -String routeId = uow.getRouteContext().getRoute().getId(); -processor = exceptionPolicy.getErrorHandler(routeId); -} else if (!exceptionPolicy.getErrorHandlers().isEmpty()) { -// note this should really not happen, but we have this code as a fail safe -// to be backwards compatible with the old behavior -log.warn("Cannot determine current route from Exchange with id: {}, will fallback and use first error handler.", exchange.getExchangeId()); -processor = exceptionPolicy.getErrorHandlers().iterator().next(); -} -if (processor != null) { -data.failureProcessor = processor; -} +// find the error handler to use (if any) +OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); +if (exceptionPolicy != null) { +data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), +data.currentRedeliveryPolicy); +data.handledPredicate = exceptionPolicy.getHandledPolicy(); +data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); +data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); +data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null +&& exceptionPolicy.getUseOriginalMessagePolicy(); + +// route specific failure handler? +Processor processor = null; +UnitOfWork uow = exchange.getUnitOfWork(); +if (uow != null && uow.getRouteContext() != null) { +String routeId =
[02/15] camel git commit: CAMEL-11229 Infinite recursion if exception hap...
CAMEL-11229 Infinite recursion if exception hap... ...pens inside exception handler A bit simpler unit test and reformatted source code. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9d656020 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9d656020 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9d656020 Branch: refs/heads/camel-2.19.x Commit: 9d65602039ca597e77dbe88a6069a14ab43c6046 Parents: f070c4f Author: Zoran RegvartAuthored: Mon May 8 11:54:59 2017 +0200 Committer: Claus Ibsen Committed: Thu May 11 18:39:01 2017 +0200 -- .../camel/processor/RedeliveryErrorHandler.java | 75 +++- .../onexception/OnExceptionRecursionTest.java | 48 ++--- 2 files changed, 47 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/9d656020/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 bc05bbc..eb29e6c 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 @@ -853,50 +853,55 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme Throwable origExceptionCaught = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class); if (origExceptionCaught != null) { -log.error("Second Exception occured inside exception handler. Failing exchange", e); +log.error("Second Exception occurred inside exception handler. Failing exchange", e); exchange.setProperty(Exchange.UNIT_OF_WORK_EXHAUSTED, true); } else { // store the original caused exception in a property, so we can restore it later exchange.setProperty(Exchange.EXCEPTION_CAUGHT, e); -// find the error handler to use (if any) -OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); -if (exceptionPolicy != null) { -data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), data.currentRedeliveryPolicy); -data.handledPredicate = exceptionPolicy.getHandledPolicy(); -data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); -data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); -data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null && exceptionPolicy.getUseOriginalMessagePolicy(); - -// route specific failure handler? -Processor processor = null; -UnitOfWork uow = exchange.getUnitOfWork(); -if (uow != null && uow.getRouteContext() != null) { -String routeId = uow.getRouteContext().getRoute().getId(); -processor = exceptionPolicy.getErrorHandler(routeId); -} else if (!exceptionPolicy.getErrorHandlers().isEmpty()) { -// note this should really not happen, but we have this code as a fail safe -// to be backwards compatible with the old behavior -log.warn("Cannot determine current route from Exchange with id: {}, will fallback and use first error handler.", exchange.getExchangeId()); -processor = exceptionPolicy.getErrorHandlers().iterator().next(); -} -if (processor != null) { -data.failureProcessor = processor; -} +// find the error handler to use (if any) +OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); +if (exceptionPolicy != null) { +data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), +data.currentRedeliveryPolicy); +data.handledPredicate = exceptionPolicy.getHandledPolicy(); +data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); +data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); +data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null +&& exceptionPolicy.getUseOriginalMessagePolicy(); + +// route specific failure handler? +Processor processor = null; +UnitOfWork uow = exchange.getUnitOfWork(); +if (uow != null && uow.getRouteContext() != null) { +String routeId =
[3/7] camel git commit: CAMEL-11229 Infinite recursion if exception hap...
CAMEL-11229 Infinite recursion if exception hap... ...pens inside exception handler A bit simpler unit test and reformatted source code. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3f4805d0 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3f4805d0 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3f4805d0 Branch: refs/heads/master Commit: 3f4805d0b2c45cf268b5a2c04f7a21d81890c5fd Parents: ff4fc73 Author: Zoran RegvartAuthored: Mon May 8 11:54:59 2017 +0200 Committer: Claus Ibsen Committed: Thu May 11 18:21:07 2017 +0200 -- .../camel/processor/RedeliveryErrorHandler.java | 75 +++- .../onexception/OnExceptionRecursionTest.java | 48 ++--- 2 files changed, 47 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/3f4805d0/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 bc05bbc..eb29e6c 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 @@ -853,50 +853,55 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme Throwable origExceptionCaught = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class); if (origExceptionCaught != null) { -log.error("Second Exception occured inside exception handler. Failing exchange", e); +log.error("Second Exception occurred inside exception handler. Failing exchange", e); exchange.setProperty(Exchange.UNIT_OF_WORK_EXHAUSTED, true); } else { // store the original caused exception in a property, so we can restore it later exchange.setProperty(Exchange.EXCEPTION_CAUGHT, e); -// find the error handler to use (if any) -OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); -if (exceptionPolicy != null) { -data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), data.currentRedeliveryPolicy); -data.handledPredicate = exceptionPolicy.getHandledPolicy(); -data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); -data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); -data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null && exceptionPolicy.getUseOriginalMessagePolicy(); - -// route specific failure handler? -Processor processor = null; -UnitOfWork uow = exchange.getUnitOfWork(); -if (uow != null && uow.getRouteContext() != null) { -String routeId = uow.getRouteContext().getRoute().getId(); -processor = exceptionPolicy.getErrorHandler(routeId); -} else if (!exceptionPolicy.getErrorHandlers().isEmpty()) { -// note this should really not happen, but we have this code as a fail safe -// to be backwards compatible with the old behavior -log.warn("Cannot determine current route from Exchange with id: {}, will fallback and use first error handler.", exchange.getExchangeId()); -processor = exceptionPolicy.getErrorHandlers().iterator().next(); -} -if (processor != null) { -data.failureProcessor = processor; -} +// find the error handler to use (if any) +OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); +if (exceptionPolicy != null) { +data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), +data.currentRedeliveryPolicy); +data.handledPredicate = exceptionPolicy.getHandledPolicy(); +data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); +data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); +data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null +&& exceptionPolicy.getUseOriginalMessagePolicy(); + +// route specific failure handler? +Processor processor = null; +UnitOfWork uow = exchange.getUnitOfWork(); +if (uow != null && uow.getRouteContext() != null) { +String routeId =
camel git commit: CAMEL-11229 Infinite recursion if exception hap...
Repository: camel Updated Branches: refs/heads/CAMEL-11229 175c379d4 -> d76f75ea4 CAMEL-11229 Infinite recursion if exception hap... ...pens inside exception handler A bit simpler unit test and reformatted source code. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d76f75ea Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d76f75ea Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d76f75ea Branch: refs/heads/CAMEL-11229 Commit: d76f75ea46b55b16af9e0ae05bfbb3df271545bd Parents: 175c379 Author: Zoran RegvartAuthored: Mon May 8 11:54:59 2017 +0200 Committer: Zoran Regvart Committed: Mon May 8 11:54:59 2017 +0200 -- .../camel/processor/RedeliveryErrorHandler.java | 75 +++- .../onexception/OnExceptionRecursionTest.java | 48 ++--- 2 files changed, 47 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/d76f75ea/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 bc05bbc..eb29e6c 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 @@ -853,50 +853,55 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport impleme Throwable origExceptionCaught = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class); if (origExceptionCaught != null) { -log.error("Second Exception occured inside exception handler. Failing exchange", e); +log.error("Second Exception occurred inside exception handler. Failing exchange", e); exchange.setProperty(Exchange.UNIT_OF_WORK_EXHAUSTED, true); } else { // store the original caused exception in a property, so we can restore it later exchange.setProperty(Exchange.EXCEPTION_CAUGHT, e); -// find the error handler to use (if any) -OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); -if (exceptionPolicy != null) { -data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), data.currentRedeliveryPolicy); -data.handledPredicate = exceptionPolicy.getHandledPolicy(); -data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); -data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); -data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null && exceptionPolicy.getUseOriginalMessagePolicy(); - -// route specific failure handler? -Processor processor = null; -UnitOfWork uow = exchange.getUnitOfWork(); -if (uow != null && uow.getRouteContext() != null) { -String routeId = uow.getRouteContext().getRoute().getId(); -processor = exceptionPolicy.getErrorHandler(routeId); -} else if (!exceptionPolicy.getErrorHandlers().isEmpty()) { -// note this should really not happen, but we have this code as a fail safe -// to be backwards compatible with the old behavior -log.warn("Cannot determine current route from Exchange with id: {}, will fallback and use first error handler.", exchange.getExchangeId()); -processor = exceptionPolicy.getErrorHandlers().iterator().next(); -} -if (processor != null) { -data.failureProcessor = processor; -} +// find the error handler to use (if any) +OnExceptionDefinition exceptionPolicy = getExceptionPolicy(exchange, e); +if (exceptionPolicy != null) { +data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), +data.currentRedeliveryPolicy); +data.handledPredicate = exceptionPolicy.getHandledPolicy(); +data.continuedPredicate = exceptionPolicy.getContinuedPolicy(); +data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy(); +data.useOriginalInMessage = exceptionPolicy.getUseOriginalMessagePolicy() != null +&& exceptionPolicy.getUseOriginalMessagePolicy(); + +// route specific failure handler? +Processor processor = null; +UnitOfWork uow = exchange.getUnitOfWork(); +if (uow !=