You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/02/14 12:53:53 UTC
[camel] 08/23: CAMEL-15105: rework managing error handling properties in the exchange
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 <an...@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);