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
The following commit(s) were added to refs/heads/main by this push: new 0741f993f1e CAMEL-19748: fixed catching Throwable in camel-core-processor (#11115) 0741f993f1e is described below commit 0741f993f1ecd9b731e5a071cf6598926092d11d Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com> AuthorDate: Thu Aug 17 07:15:27 2023 +0200 CAMEL-19748: fixed catching Throwable in camel-core-processor (#11115) --- .../main/java/org/apache/camel/processor/ChoiceProcessor.java | 2 +- .../java/org/apache/camel/processor/ClaimCheckProcessor.java | 2 +- .../java/org/apache/camel/processor/DelayProcessorSupport.java | 2 +- .../src/main/java/org/apache/camel/processor/Enricher.java | 2 +- .../apache/camel/processor/EvaluateExpressionProcessor.java | 2 +- .../java/org/apache/camel/processor/EventNotifierProducer.java | 2 +- .../src/main/java/org/apache/camel/processor/LogProcessor.java | 4 ++-- .../java/org/apache/camel/processor/MulticastProcessor.java | 10 +++++----- .../src/main/java/org/apache/camel/processor/Pipeline.java | 2 +- .../src/main/java/org/apache/camel/processor/PollEnricher.java | 4 ++-- .../java/org/apache/camel/processor/PooledTaskFactory.java | 4 ++-- .../src/main/java/org/apache/camel/processor/Resequencer.java | 4 ++-- .../java/org/apache/camel/processor/RestBindingAdvice.java | 2 +- .../src/main/java/org/apache/camel/processor/RoutingSlip.java | 2 +- .../main/java/org/apache/camel/processor/ScriptProcessor.java | 2 +- .../java/org/apache/camel/processor/SendDynamicProcessor.java | 8 ++++---- .../main/java/org/apache/camel/processor/SendProcessor.java | 2 +- .../main/java/org/apache/camel/processor/SetBodyProcessor.java | 2 +- .../java/org/apache/camel/processor/SetHeaderProcessor.java | 2 +- .../java/org/apache/camel/processor/SetPropertyProcessor.java | 2 +- .../main/java/org/apache/camel/processor/StepProcessor.java | 2 +- .../java/org/apache/camel/processor/StreamResequencer.java | 2 +- .../main/java/org/apache/camel/processor/ThreadsProcessor.java | 2 +- .../org/apache/camel/processor/ThrowExceptionProcessor.java | 2 +- .../java/org/apache/camel/processor/TransformProcessor.java | 2 +- .../main/java/org/apache/camel/processor/WireTapProcessor.java | 2 +- .../apache/camel/processor/aggregate/AggregateProcessor.java | 8 ++++---- .../camel/processor/errorhandler/RedeliveryErrorHandler.java | 8 ++++---- 28 files changed, 45 insertions(+), 45 deletions(-) diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java index be781ec1ee3..b656d584ce9 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ChoiceProcessor.java @@ -69,7 +69,7 @@ public class ChoiceProcessor extends AsyncProcessorSupport implements Navigate<P boolean matches = false; try { matches = filter.matches(exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java index 3af4cd0dd9c..de4c47a3bc6 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java @@ -176,7 +176,7 @@ public class ClaimCheckProcessor extends AsyncProcessorSupport implements IdAwar } } } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java index 0e1d0c269af..8f8c17b7037 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DelayProcessorSupport.java @@ -171,7 +171,7 @@ public abstract class DelayProcessorSupport extends DelegateAsyncProcessor { } return processor.process(exchange, callback); } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); callback.done(true); return true; diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java index 2a60c7818a4..38393021350 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Enricher.java @@ -177,7 +177,7 @@ public class Enricher extends AsyncProcessorSupport implements IdAware, RouteIdA resourceExchange.getExchangeExtension().handoverCompletions(exchange); } } - } catch (Throwable e) { + } catch (Exception e) { // if the aggregationStrategy threw an exception, set it on the original exchange exchange.setException(new CamelExchangeException("Error occurred during aggregation", exchange, e)); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java index 420ffae078e..80814a73425 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EvaluateExpressionProcessor.java @@ -42,7 +42,7 @@ public class EvaluateExpressionProcessor extends AsyncProcessorSupport implement try { Object result = expression.evaluate(exchange, Object.class); exchange.setProperty(ExchangePropertyKey.EVALUATE_EXPRESSION_RESULT, result); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } finally { callback.done(true); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java index b82a40ed563..380f04e2166 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/EventNotifierProducer.java @@ -81,7 +81,7 @@ public final class EventNotifierProducer extends DefaultAsyncProducer { } } }); - } catch (Throwable throwable) { + } catch (Exception throwable) { exchange.setException(throwable); callback.done(true); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java index 411794eb1a0..764f5d79086 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/LogProcessor.java @@ -79,7 +79,7 @@ public class LogProcessor extends AsyncProcessorSupport implements Traceable, Id msg = fireListeners(exchange, msg); } logger.doLog(msg); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } } @@ -95,7 +95,7 @@ public class LogProcessor extends AsyncProcessorSupport implements Traceable, Id try { String output = listener.onLog(exchange, logger, message); message = output != null ? output : message; - } catch (Throwable t) { + } catch (Exception t) { LOG.warn("Ignoring an exception thrown by {}: {}", listener.getClass().getName(), t.getMessage()); if (LOG.isDebugEnabled()) { LOG.debug("", t); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java index 7c967d985a8..14638d95674 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/MulticastProcessor.java @@ -310,7 +310,7 @@ public class MulticastProcessor extends AsyncProcessorSupport return doProcess(exchange, callback); } }, exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } finally { callback.done(true); @@ -329,7 +329,7 @@ public class MulticastProcessor extends AsyncProcessorSupport if (pairs instanceof Collection) { size = ((Collection<ProcessorExchangePair>) pairs).size(); } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); // unexpected exception was thrown, maybe from iterator etc. so do not regard as exhausted // and do the done work @@ -474,7 +474,7 @@ public class MulticastProcessor extends AsyncProcessorSupport doDone(result.get(), true); } } - } catch (Throwable e) { + } catch (Exception e) { original.setException(e); // and do the done work doDone(null, false); @@ -502,7 +502,7 @@ public class MulticastProcessor extends AsyncProcessorSupport } } doDone(result.get(), true); - } catch (Throwable e) { + } catch (Exception e) { original.setException(e); // and do the done work doDone(null, false); @@ -849,7 +849,7 @@ public class MulticastProcessor extends AsyncProcessorSupport for (ProcessorExchangePair pair : pairs) { processorExchangeFactory.release(pair.getExchange()); } - } catch (Throwable e) { + } catch (Exception e) { LOG.warn("Error releasing exchange due to {}. This exception is ignored.", e.getMessage(), e); } } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java index 9f20c5b950e..95fa1d390b0 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java @@ -163,7 +163,7 @@ public class Pipeline extends AsyncProcessorSupport implements Navigate<Processo reactiveExecutor.scheduleMain(task); } return false; - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); callback.done(true); return true; diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java index 99e9c6734af..b820f383017 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PollEnricher.java @@ -226,7 +226,7 @@ public class PollEnricher extends AsyncProcessorSupport implements IdAware, Rout } // acquire the consumer from the cache consumer = consumerCache.acquirePollingConsumer(endpoint); - } catch (Throwable e) { + } catch (Exception e) { if (isIgnoreInvalidEndpoint()) { LOG.debug("Endpoint uri is invalid: {}. This exception will be ignored.", recipient, e); } else { @@ -339,7 +339,7 @@ public class PollEnricher extends AsyncProcessorSupport implements IdAware, Rout // set property with the uri of the endpoint enriched so we can use that for tracing etc exchange.setProperty(ExchangePropertyKey.TO_ENDPOINT, consumer.getEndpoint().getEndpointUri()); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(new CamelExchangeException("Error occurred during aggregation", exchange, e)); callback.done(true); return true; diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PooledTaskFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PooledTaskFactory.java index 18d26707257..56668838ccf 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/PooledTaskFactory.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/PooledTaskFactory.java @@ -49,7 +49,7 @@ public abstract class PooledTaskFactory extends PooledObjectFactorySupport<Poole } try { task.prepare(exchange, callback); - } catch (Throwable e) { + } catch (Exception e) { // if error during prepare then we need to discard this task if (statisticsEnabled) { statistics.discarded.increment(); @@ -72,7 +72,7 @@ public abstract class PooledTaskFactory extends PooledObjectFactorySupport<Poole } } return inserted; - } catch (Throwable e) { + } catch (Exception e) { if (statisticsEnabled) { statistics.discarded.increment(); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java index 355fc7705d3..7bf6b6a95d0 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Resequencer.java @@ -377,7 +377,7 @@ public class Resequencer extends AsyncProcessorSupport implements Navigate<Proce // exchange is valid so enqueue the exchange sender.enqueueExchange(exchange); } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } callback.done(true); @@ -482,7 +482,7 @@ public class Resequencer extends AsyncProcessorSupport implements Navigate<Proce try { try { sendExchanges(); - } catch (Throwable t) { + } catch (Exception t) { // a fail safe to handle all exceptions being thrown getExceptionHandler().handleException(t); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java index b6737e9f545..e711d332ec0 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java @@ -478,7 +478,7 @@ public class RestBindingAdvice implements CamelInternalProcessorAdvice<Map<Strin } } } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java index 5cec27897ea..d023d3bc406 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RoutingSlip.java @@ -526,7 +526,7 @@ public class RoutingSlip extends AsyncProcessorSupport implements Traceable, IdA // copy results back to the original exchange ExchangeHelper.copyResults(original, current); - } catch (Throwable e) { + } catch (Exception e) { ex.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java index c1756d37f40..f78d264e2bf 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ScriptProcessor.java @@ -42,7 +42,7 @@ public class ScriptProcessor extends AsyncProcessorSupport implements Traceable, public boolean process(Exchange exchange, AsyncCallback callback) { try { expression.evaluate(exchange, Object.class); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java index a99e4aadc0d..fc842482972 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java @@ -160,7 +160,7 @@ public class SendDynamicProcessor extends AsyncProcessorSupport implements IdAwa prototype = false; } destinationExchangePattern = EndpointHelper.resolveExchangePatternFromUrl(endpoint.getEndpointUri()); - } catch (Throwable e) { + } catch (Exception e) { if (isIgnoreInvalidEndpoint()) { if (LOG.isDebugEnabled()) { LOG.debug("Endpoint uri is invalid: {}. This exception will be ignored.", recipient, e); @@ -184,7 +184,7 @@ public class SendDynamicProcessor extends AsyncProcessorSupport implements IdAwa if (preProcessor != null) { preProcessor.process(target); } - } catch (Throwable t) { + } catch (Exception t) { e.setException(t); // restore previous MEP target.setPattern(existingPattern); @@ -201,7 +201,7 @@ public class SendDynamicProcessor extends AsyncProcessorSupport implements IdAwa if (postProcessor != null) { postProcessor.process(target); } - } catch (Throwable e) { + } catch (Exception e) { target.setException(e); } // stop endpoint if prototype as it was only used once @@ -339,7 +339,7 @@ public class SendDynamicProcessor extends AsyncProcessorSupport implements IdAwa } } } - } catch (Throwable e) { + } catch (Exception e) { // ignore if (LOG.isDebugEnabled()) { LOG.debug( diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java index 9992afff914..516da700ce2 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java @@ -174,7 +174,7 @@ public class SendProcessor extends AsyncProcessorSupport implements Traceable, E EventHelper.notifyExchangeAsyncProcessingStartedEvent(camelContext, exchange); } return sync; - } catch (Throwable throwable) { + } catch (Exception throwable) { exchange.setException(throwable); callback.done(true); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java index 086ec0bcafb..b41cc99a14e 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetBodyProcessor.java @@ -67,7 +67,7 @@ public class SetBodyProcessor extends AsyncProcessorSupport implements Traceable old.setBody(newBody); } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java index 7b29152e65e..8f162fad9c9 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetHeaderProcessor.java @@ -58,7 +58,7 @@ public class SetHeaderProcessor extends AsyncProcessorSupport implements Traceab String key = headerName.evaluate(exchange, String.class); old.setHeader(key, newHeader); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java index 25219440836..361c78e78ac 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetPropertyProcessor.java @@ -54,7 +54,7 @@ public class SetPropertyProcessor extends AsyncProcessorSupport implements Trace String key = propertyName.evaluate(exchange, String.class); exchange.setProperty(key, newProperty); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java index 9647c11bbc3..a8f725b1f0b 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StepProcessor.java @@ -65,7 +65,7 @@ public class StepProcessor extends Pipeline { } else { EventHelper.notifyStepDone(exchange.getContext(), exchange, stepId); } - } catch (Throwable t) { + } catch (Exception t) { // must catch exceptions to ensure synchronizations is also invoked LOG.warn("Exception occurred during event notification. This exception will be ignored.", t); } finally { diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java index 0430d6a93bc..76730878569 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/StreamResequencer.java @@ -307,7 +307,7 @@ public class StreamResequencer extends AsyncProcessorSupport } try { engine.deliver(); - } catch (Throwable t) { + } catch (Exception t) { // a fail-safe to handle all exceptions being thrown getExceptionHandler().handleException(t); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java index 072fcbbef18..48731414e82 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThreadsProcessor.java @@ -132,7 +132,7 @@ public class ThreadsProcessor extends AsyncProcessorSupport implements IdAware, executorService.submit(call); // tell Camel routing engine we continue routing asynchronous return false; - } catch (Throwable e) { + } catch (Exception e) { if (executorService instanceof ThreadPoolExecutor) { ThreadPoolExecutor tpe = (ThreadPoolExecutor) executorService; // process the call in synchronous mode diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java index fdd7bc92da2..7feb51b2763 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java @@ -73,7 +73,7 @@ public class ThrowExceptionProcessor extends AsyncProcessorSupport } else { exchange.setException(cause); } - } catch (Throwable e) { + } catch (Exception e) { Class<? extends Exception> exceptionClass = exception != null ? exception.getClass() : type; exchange.setException( new CamelExchangeException("Error creating new instance of " + exceptionClass, exchange, e)); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java index 9791b1acc6c..570c27c19b4 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/TransformProcessor.java @@ -74,7 +74,7 @@ public class TransformProcessor extends AsyncProcessorSupport implements Traceab } } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java index 6462cff7845..c025f169672 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/WireTapProcessor.java @@ -203,7 +203,7 @@ public class WireTapProcessor extends AsyncProcessorSupport // create task which has state used during routing PooledExchangeTask task = taskFactory.acquire(target, null); executorService.submit(task); - } catch (Throwable e) { + } catch (Exception e) { // in case the thread pool rejects or cannot submit the task then we need to catch // so camel error handler can react exchange.setException(e); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java index 8aad9ec5518..f5bfb2ebeeb 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java @@ -314,7 +314,7 @@ public class AggregateProcessor extends AsyncProcessorSupport public boolean process(Exchange exchange, AsyncCallback callback) { try { return doProcess(exchange, callback); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); callback.done(true); return true; @@ -511,7 +511,7 @@ public class AggregateProcessor extends AsyncProcessorSupport // remove it afterwards newExchange.removeProperty(ExchangePropertyKey.AGGREGATED_SIZE); newExchange.removeProperty(ExchangePropertyKey.AGGREGATED_CORRELATION_KEY); - } catch (Throwable e) { + } catch (Exception e) { // must catch any exception from aggregation throw new CamelExchangeException("Error occurred during preComplete", newExchange, e); } @@ -547,7 +547,7 @@ public class AggregateProcessor extends AsyncProcessorSupport boolean aggregateFailed = false; try { answer = onAggregation(oldExchange, newExchange); - } catch (Throwable e) { + } catch (Exception e) { aggregateFailed = true; if (isDiscardOnAggregationFailure()) { // discard due failure in aggregation strategy @@ -1438,7 +1438,7 @@ public class AggregateProcessor extends AsyncProcessorSupport exchange.getExchangeExtension().setRedeliveryExhausted(false); exchange.setRollbackOnly(false); deadLetterProducerTemplate.send(recoverable.getDeadLetterUri(), exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java index 320bec4b600..fc17f1c3cc6 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/errorhandler/RedeliveryErrorHandler.java @@ -535,7 +535,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport onExceptionProcessor, exchange); } onExceptionProcessor.process(exchange); - } catch (Throwable e) { + } catch (Exception e) { // we dont not want new exception to override existing, so log it as a WARN LOG.warn("Error during processing OnExceptionOccurred. This exception is ignored.", e); } @@ -730,7 +730,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport try { doRun(); - } catch (Throwable e) { + } catch (Exception e) { // unexpected exception during running so set exception and trigger callback // (do not do taskFactory.release as that happens later) exchange.setException(e); @@ -1084,7 +1084,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport onExceptionProcessor, exchange); } onExceptionProcessor.process(exchange); - } catch (Throwable e) { + } catch (Exception e) { // we dont not want new exception to override existing, so log it as a WARN LOG.warn("Error during processing OnExceptionOccurred. This exception is ignored.", e); } @@ -1108,7 +1108,7 @@ public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport // run this synchronously as its just a Processor try { onRedeliveryProcessor.process(exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } LOG.trace("Redelivery processor done");