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);
                 }
             }

Reply via email to