This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit cd3f7313842b81a1656333cac69bdff243fd1b2f Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Tue Nov 22 18:19:06 2022 +0100 CAMEL-15105: rework managing error handling properties in the exchange --- ...ansactionalClientDataSourceOnExceptionRedeliveryTest.java | 3 +-- .../TransactionalClientDataSourceRedeliveryTest.java | 3 +-- .../apache/camel/impl/event/ExchangeFailureHandledEvent.java | 4 ++-- .../apache/camel/processor/FatalFallbackErrorHandler.java | 4 ++-- .../aggregate/ShareUnitOfWorkAggregationStrategy.java | 12 +++++------- .../aggregator/BodyOnlyAggregationStrategyTest.java | 5 ++--- .../itest/jetty/JettySimulateFailoverRoundRobinTest.java | 2 +- 7 files changed, 14 insertions(+), 19 deletions(-) diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceOnExceptionRedeliveryTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceOnExceptionRedeliveryTest.java index 5b1f5a733eb..9a77580dc28 100644 --- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceOnExceptionRedeliveryTest.java +++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceOnExceptionRedeliveryTest.java @@ -17,7 +17,6 @@ package org.apache.camel.spring.interceptor; import org.apache.camel.Exchange; -import org.apache.camel.ExtendedExchange; import org.apache.camel.Processor; import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.RouteBuilder; @@ -51,7 +50,7 @@ public class TransactionalClientDataSourceOnExceptionRedeliveryTest extends Tran assertEquals(true, out.getIn().getHeader(Exchange.REDELIVERED)); assertEquals(3, out.getIn().getHeader(Exchange.REDELIVERY_COUNTER)); assertEquals(true, out.getProperty(Exchange.FAILURE_HANDLED)); - assertEquals(false, out.adapt(ExtendedExchange.class).isErrorHandlerHandled()); + assertEquals(false, out.getExchangeExtension().isErrorHandlerHandled()); } @Override diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceRedeliveryTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceRedeliveryTest.java index 9d99e469684..361183d7dea 100644 --- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceRedeliveryTest.java +++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceRedeliveryTest.java @@ -17,7 +17,6 @@ package org.apache.camel.spring.interceptor; import org.apache.camel.Exchange; -import org.apache.camel.ExtendedExchange; import org.apache.camel.Processor; import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.RouteBuilder; @@ -51,7 +50,7 @@ public class TransactionalClientDataSourceRedeliveryTest extends TransactionalCl assertEquals(true, out.getIn().getHeader(Exchange.REDELIVERED)); assertEquals(4, out.getIn().getHeader(Exchange.REDELIVERY_COUNTER)); assertEquals(true, out.getProperty(Exchange.FAILURE_HANDLED)); - assertEquals(false, out.adapt(ExtendedExchange.class).isErrorHandlerHandled()); + assertEquals(false, out.getExchangeExtension().isErrorHandlerHandled()); } @Override diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java index b7442de7579..229588e57a6 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java @@ -36,8 +36,8 @@ public class ExchangeFailureHandledEvent extends AbstractExchangeEvent implement this.failureHandler = failureHandler; this.deadLetterChannel = deadLetterChannel; this.deadLetterUri = deadLetterUri; - this.handled = source.adapt(ExtendedExchange.class).isErrorHandlerHandledSet() - && source.adapt(ExtendedExchange.class).isErrorHandlerHandled(); + this.handled = source.getExchangeExtension().isErrorHandlerHandledSet() + && source.getExchangeExtension().isErrorHandlerHandled(); } @Override diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java index 54e3b742eeb..168797155da 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/FatalFallbackErrorHandler.java @@ -135,12 +135,12 @@ public class FatalFallbackErrorHandler extends DelegateAsyncProcessor implements if (deadLetterChannel) { // special for dead letter channel as we want to let it determine what to do, depending how // it has been configured - exchange.adapt(ExtendedExchange.class).setErrorHandlerHandled(null); + exchange.getExchangeExtension().setErrorHandlerHandled(null); } else { // mark this exchange as already been error handler handled (just by having this property) // the false value mean the caught exception will be kept on the exchange, causing the // exception to be propagated back to the caller, and to break out routing - exchange.adapt(ExtendedExchange.class).setErrorHandlerHandled(false); + exchange.getExchangeExtension().setErrorHandlerHandled(false); } } } finally { diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java index 06e97ad4983..6127301e754 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java @@ -21,7 +21,6 @@ import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; import org.apache.camel.Exchange; import org.apache.camel.ExchangePropertyKey; -import org.apache.camel.ExtendedExchange; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.support.service.ServiceSupport; @@ -108,10 +107,9 @@ public final class ShareUnitOfWorkAggregationStrategy extends ServiceSupport imp } protected void propagateFailure(Exchange answer, Exchange newExchange) { - ExtendedExchange nee = (ExtendedExchange) newExchange; // if new exchange failed then propagate all the error related properties to the answer - if (nee.isFailed() || nee.isRollbackOnly() || nee.isRollbackOnlyLast() - || nee.isErrorHandlerHandledSet() && nee.isErrorHandlerHandled()) { + if (newExchange.isFailed() || newExchange.isRollbackOnly() || newExchange.isRollbackOnlyLast() + || newExchange.getExchangeExtension().isErrorHandlerHandledSet() && newExchange.getExchangeExtension().isErrorHandlerHandled()) { if (newExchange.getException() != null) { answer.setException(newExchange.getException()); } @@ -127,9 +125,9 @@ public final class ShareUnitOfWorkAggregationStrategy extends ServiceSupport imp answer.setProperty(ExchangePropertyKey.FAILURE_ROUTE_ID, newExchange.getProperty(ExchangePropertyKey.FAILURE_ROUTE_ID)); } - if (newExchange.adapt(ExtendedExchange.class).getErrorHandlerHandled() != null) { - answer.adapt(ExtendedExchange.class) - .setErrorHandlerHandled(newExchange.adapt(ExtendedExchange.class).getErrorHandlerHandled()); + if (newExchange.getExchangeExtension().getErrorHandlerHandled() != null) { + answer.getExchangeExtension() + .setErrorHandlerHandled(newExchange.getExchangeExtension().getErrorHandlerHandled()); } if (newExchange.getProperty(ExchangePropertyKey.FAILURE_HANDLED) != null) { answer.setProperty(ExchangePropertyKey.FAILURE_HANDLED, diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java index 854d781a8e7..a0eb6d43723 100644 --- a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/BodyOnlyAggregationStrategyTest.java @@ -20,7 +20,6 @@ import org.apache.camel.AggregationStrategy; import org.apache.camel.ContextTestSupport; import org.apache.camel.ErrorHandlerFactory; import org.apache.camel.Exchange; -import org.apache.camel.ExtendedExchange; import org.apache.camel.builder.RouteBuilder; import org.junit.jupiter.api.Test; @@ -75,8 +74,8 @@ public class BodyOnlyAggregationStrategyTest extends ContextTestSupport { public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { oldExchange.getIn().setBody(newExchange.getIn().getBody()); - oldExchange.adapt(ExtendedExchange.class).setErrorHandlerHandled( - newExchange.adapt(ExtendedExchange.class).getErrorHandlerHandled()); + oldExchange.getExchangeExtension().setErrorHandlerHandled( + newExchange.getExchangeExtension().getErrorHandlerHandled()); return oldExchange; } diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java index c9feb889d0b..cf45a712593 100644 --- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java +++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java @@ -160,7 +160,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport { private void prepareExchangeForFailover(Exchange exchange) { exchange.setException(null); - exchange.adapt(ExtendedExchange.class).setErrorHandlerHandled(null); + exchange.getExchangeExtension().setErrorHandlerHandled(null); exchange.setProperty(Exchange.FAILURE_HANDLED, null); exchange.setProperty(Exchange.EXCEPTION_CAUGHT, null); exchange.getIn().removeHeader(Exchange.REDELIVERED);