This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new e625a7f (chores) avoid catching Throwable as it can lead to unexpected (#4911) e625a7f is described below commit e625a7f0b380e2728d93bdfe785b620977380bf9 Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com> AuthorDate: Fri Jan 22 15:55:11 2021 +0100 (chores) avoid catching Throwable as it can lead to unexpected (#4911) situations Includes changes to the following components: camel-facebook, camel-file-watch camel-file, camel-google-pubsubl, camel-google-pubsub, camel-optaplanner, camel-rabbitmq, camel-quartz, camel-sjms --- .../org/apache/camel/component/facebook/FacebookConsumer.java | 2 +- .../org/apache/camel/component/facebook/FacebookProducer.java | 2 +- .../component/facebook/data/FacebookMethodsTypeHelper.java | 5 ++--- .../apache/camel/component/file/watch/FileWatchConsumer.java | 2 +- .../main/java/org/apache/camel/component/file/GenericFile.java | 2 +- .../camel/component/file/GenericFilePollingConsumer.java | 2 +- .../camel/component/google/pubsub/GooglePubsubConsumer.java | 2 +- .../component/google/pubsub/consumer/CamelMessageReceiver.java | 2 +- .../camel/component/optaplanner/OptaPlannerProducer.java | 2 +- .../main/java/org/apache/camel/component/quartz/CamelJob.java | 2 +- .../org/apache/camel/component/rabbitmq/RabbitMQComponent.java | 2 +- .../org/apache/camel/component/rabbitmq/RabbitMQConsumer.java | 2 +- .../org/apache/camel/component/rabbitmq/RabbitMQProducer.java | 2 +- .../camel/component/rabbitmq/reply/CorrelationTimeoutMap.java | 2 +- .../java/org/apache/camel/component/sjms/SjmsConsumer.java | 4 ++-- .../main/java/org/apache/camel/component/sjms/SjmsHelper.java | 6 +++--- .../main/java/org/apache/camel/component/sjms/SjmsMessage.java | 2 +- .../java/org/apache/camel/component/sjms/SjmsProducer.java | 2 +- .../apache/camel/component/sjms/TransactionOnCompletion.java | 2 +- .../camel/component/sjms/consumer/EndpointMessageListener.java | 6 +++--- .../sjms/consumer/SimpleMessageListenerContainer.java | 10 +++++----- 21 files changed, 31 insertions(+), 32 deletions(-) diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookConsumer.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookConsumer.java index 5a3f5a6..343c4fe 100644 --- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookConsumer.java +++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookConsumer.java @@ -178,7 +178,7 @@ public class FacebookConsumer extends ScheduledPollConsumer { processResult(result, rawJSON); return 1; // number of messages polled } - } catch (Throwable t) { + } catch (Exception t) { throw RuntimeCamelException.wrapRuntimeCamelException(t); } } diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookProducer.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookProducer.java index 1e0c27d..34682ee 100644 --- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookProducer.java +++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookProducer.java @@ -113,7 +113,7 @@ public class FacebookProducer extends DefaultAsyncProducer { rawJSON); } - } catch (Throwable t) { + } catch (Exception t) { exchange.setException(RuntimeCamelException.wrapRuntimeCamelException(t)); } finally { callback.done(false); diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/data/FacebookMethodsTypeHelper.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/data/FacebookMethodsTypeHelper.java index 6b94608..5bf235e 100644 --- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/data/FacebookMethodsTypeHelper.java +++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/data/FacebookMethodsTypeHelper.java @@ -356,12 +356,11 @@ public final class FacebookMethodsTypeHelper { try { return method.getMethod().invoke(facebook, values); - } catch (Throwable e) { + } catch (Exception e) { // skip wrapper exception to simplify stack String msg; if (e.getCause() instanceof FacebookException) { - e = e.getCause(); - msg = ((FacebookException) e).getErrorMessage(); + msg = ((FacebookException) e.getCause()).getErrorMessage(); } else { msg = e.getMessage(); } diff --git a/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchConsumer.java b/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchConsumer.java index 257bc40..c1c8f77 100644 --- a/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchConsumer.java +++ b/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchConsumer.java @@ -238,7 +238,7 @@ public class FileWatchConsumer extends DefaultConsumer { try { Exchange exchange = prepareExchange(event); getProcessor().process(exchange); - } catch (Throwable t) { + } catch (Exception t) { handleException(t); } } diff --git a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFile.java b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFile.java index 5cafe84..928f548 100644 --- a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFile.java +++ b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFile.java @@ -165,7 +165,7 @@ public class GenericFile<T> implements WrappedFile<T> { Path path = f.toPath(); try { message.setHeader(Exchange.FILE_CONTENT_TYPE, Files.probeContentType(path)); - } catch (Throwable e) { + } catch (Exception e) { // just ignore the exception } } diff --git a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFilePollingConsumer.java b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFilePollingConsumer.java index 7c5bf6c..301ed28 100644 --- a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFilePollingConsumer.java +++ b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFilePollingConsumer.java @@ -169,7 +169,7 @@ public class GenericFilePollingConsumer extends EventDrivenPollingConsumer { cause = e; done = true; } - } catch (Throwable t) { + } catch (Exception t) { cause = t; done = true; } diff --git a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConsumer.java b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConsumer.java index 0f9eccb..360dadc 100644 --- a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConsumer.java +++ b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubConsumer.java @@ -170,7 +170,7 @@ class GooglePubsubConsumer extends DefaultConsumer { try { processor.process(exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } } diff --git a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/consumer/CamelMessageReceiver.java b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/consumer/CamelMessageReceiver.java index cf7610e..0b441b0 100644 --- a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/consumer/CamelMessageReceiver.java +++ b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/consumer/CamelMessageReceiver.java @@ -66,7 +66,7 @@ public class CamelMessageReceiver implements MessageReceiver { try { processor.process(exchange); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } } diff --git a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerProducer.java b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerProducer.java index e4a4a04..14ef509 100644 --- a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerProducer.java +++ b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerProducer.java @@ -166,7 +166,7 @@ public class OptaPlannerProducer extends DefaultAsyncProducer { = solverManager.solveAndListen(problemId, t -> body, eventSupport::updateBestSolution); // wait for result populateResultWithSolverManager(exchange, solverJob); - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } finally { callback.done(false); diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java index 19bc031..bfb0c59 100644 --- a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java +++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java @@ -63,7 +63,7 @@ public class CamelJob implements Job { } else { LOG.debug("Cannot execute CamelJob as there are no active consumers."); } - } catch (Throwable e) { + } catch (Exception e) { exchange.setException(e); } diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQComponent.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQComponent.java index 4f6f97f..f72f307 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQComponent.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQComponent.java @@ -175,7 +175,7 @@ public class RabbitMQComponent extends DefaultComponent { } else { exchangeName = ""; } - } catch (Throwable e) { + } catch (Exception e) { // ignore } } diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java index 63b044d..bda9900 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java @@ -108,7 +108,7 @@ public class RabbitMQConsumer extends DefaultConsumer implements Suspendable { for (RabbitConsumer consumer : this.consumers) { try { ServiceHelper.startService(consumer); - } catch (Throwable e) { + } catch (Exception e) { fail = e; } } diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java index 30aa453..1d44015 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java @@ -207,7 +207,7 @@ public class RabbitMQProducer extends DefaultAsyncProducer { // in only return processInOnly(exchange, callback); } - } catch (Throwable e) { + } catch (Exception e) { // must catch exception to ensure callback is invoked as expected // to let Camel error handling deal with this exchange.setException(e); diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/CorrelationTimeoutMap.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/CorrelationTimeoutMap.java index 19fc470..0f600dc 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/CorrelationTimeoutMap.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/reply/CorrelationTimeoutMap.java @@ -47,7 +47,7 @@ class CorrelationTimeoutMap extends DefaultTimeoutMap<String, ReplyHandler> { } else if (type == Evict) { try { handler.onTimeout(key); - } catch (Throwable e) { + } catch (Exception e) { // must ignore so we ensure we evict the element log.warn("Error processing onTimeout for correlationID: " + key + " due: " + e.getMessage() + ". This exception is ignored.", diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java index e805bb2..397b981 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsConsumer.java @@ -56,7 +56,7 @@ public class SjmsConsumer extends DefaultConsumer implements Suspendable { public void run() { try { prepareAndStartListenerContainer(); - } catch (Throwable e) { + } catch (Exception e) { LOG.warn("Error starting listener container on destination: {}. This exception will be ignored.", getDestinationName(), e); } @@ -85,7 +85,7 @@ public class SjmsConsumer extends DefaultConsumer implements Suspendable { public void run() { try { stopAndDestroyListenerContainer(); - } catch (Throwable e) { + } catch (Exception e) { LOG.warn("Error stopping listener container on destination: {}. This exception will be ignored.", getDestinationName(), e); } diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsHelper.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsHelper.java index 6125e21..a846078 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsHelper.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsHelper.java @@ -32,7 +32,7 @@ public final class SjmsHelper { if (producer != null) { try { producer.close(); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } @@ -42,7 +42,7 @@ public final class SjmsHelper { if (con != null) { try { con.close(); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } @@ -52,7 +52,7 @@ public final class SjmsHelper { if (ses != null) { try { ses.close(); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java index 2cdc7ad..35f066e 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java @@ -58,7 +58,7 @@ public class SjmsMessage extends DefaultMessage { if (jmsMessage != null) { try { return "SjmsMessage[JmsMessageID: " + jmsMessage.getJMSMessageID() + "]"; - } catch (Throwable e) { + } catch (Exception e) { // ignore } } diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java index 539d41c..ae70053 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsProducer.java @@ -251,7 +251,7 @@ public class SjmsProducer extends DefaultAsyncProducer { // in only return processInOnly(exchange, callback); } - } catch (Throwable e) { + } catch (Exception e) { // must catch exception to ensure callback is invoked as expected // to let Camel error handling deal with this exchange.setException(e); diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/TransactionOnCompletion.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/TransactionOnCompletion.java index a092403..91359c3 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/TransactionOnCompletion.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/TransactionOnCompletion.java @@ -50,7 +50,7 @@ class TransactionOnCompletion extends SynchronizationAdapter { } else { commitIfNeeded(session, message); } - } catch (Throwable e) { + } catch (Exception e) { // ignore } finally { closeSession(session); diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/EndpointMessageListener.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/EndpointMessageListener.java index f2c80aa..8c7b9d3 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/EndpointMessageListener.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/EndpointMessageListener.java @@ -147,14 +147,14 @@ public class EndpointMessageListener implements SessionMessageListener { try { exchange.getIn().getBody(); exchange.getIn().getHeaders(); - } catch (Throwable e) { + } catch (Exception e) { // any problems with eager loading then set an exception so Camel error handler can react exchange.setException(e); String text = eagerPoisonBody; try { text = endpoint.getCamelContext().resolveLanguage("simple") .createExpression(eagerPoisonBody).evaluate(exchange, String.class); - } catch (Throwable t) { + } catch (Exception t) { // ignore } exchange.getIn().setBody(text); @@ -361,7 +361,7 @@ public class EndpointMessageListener implements SessionMessageListener { if (producer != null) { try { producer.close(); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/SimpleMessageListenerContainer.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/SimpleMessageListenerContainer.java index 2b15649..be10129 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/SimpleMessageListenerContainer.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/consumer/SimpleMessageListenerContainer.java @@ -139,7 +139,7 @@ public class SimpleMessageListenerContainer extends ServiceSupport public void onMessage(Message message) { try { doOnMessage(message); - } catch (Throwable e) { + } catch (Exception e) { if (e instanceof JMSException) { if (endpoint.getExceptionListener() != null) { endpoint.getExceptionListener().onException((JMSException) e); @@ -169,14 +169,14 @@ public class SimpleMessageListenerContainer extends ServiceSupport if (exceptionListener != null) { try { exceptionListener.onException(exception); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } if (endpoint.getExceptionListener() != null) { try { endpoint.getExceptionListener().onException(exception); - } catch (Throwable e) { + } catch (Exception e) { // ignore } } @@ -196,7 +196,7 @@ public class SimpleMessageListenerContainer extends ServiceSupport LOG.debug("Successfully recovered JMS Connection (attempt: {})", task.getCurrentAttempts()); // success so do not try again return false; - } catch (Throwable e) { + } catch (Exception e) { if (LOG.isDebugEnabled()) { LOG.debug("Failed to recover JMS Connection. Will try again in " + task.getCurrentDelay() + " millis", e); } @@ -333,7 +333,7 @@ public class SimpleMessageListenerContainer extends ServiceSupport if (this.connection != null) { try { this.connection.stop(); - } catch (Throwable e) { + } catch (Exception e) { LOG.debug("Error stopping connection. This exception is ignored.", e); } }