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 2021/01/22 08:55:44 UTC
[camel] branch master updated: Avoid catching Throwable because it
could also catch Java Errors that shouldn't be handled (#4907)
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 ab21765 Avoid catching Throwable because it could also catch Java Errors that shouldn't be handled (#4907)
ab21765 is described below
commit ab217659e3c9013322a5e7793db5dff904dc4c67
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Fri Jan 22 09:55:20 2021 +0100
Avoid catching Throwable because it could also catch Java Errors that shouldn't be handled (#4907)
---
.../java/org/apache/camel/component/activemq/ActiveMQComponent.java | 4 ++--
.../main/java/org/apache/camel/component/ahc/helper/AhcHelper.java | 2 +-
.../src/main/java/org/apache/camel/component/avro/AvroListener.java | 2 +-
.../src/main/java/org/apache/camel/component/aws/s3/S3Consumer.java | 2 +-
.../org/apache/camel/component/aws/swf/CamelWorkflowDefinition.java | 4 ++--
.../java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java | 2 +-
.../java/org/apache/camel/component/bean/AbstractBeanProcessor.java | 6 +++---
.../apache/camel/component/bean/DefaultBeanProcessorFactory.java | 2 +-
.../src/main/java/org/apache/camel/component/bean/MethodInfo.java | 2 +-
.../main/java/org/apache/camel/language/bean/BeanExpression.java | 2 +-
.../org/apache/camel/component/beanstalk/BeanstalkProducer.java | 4 ++--
.../java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java | 2 +-
.../main/java/org/apache/camel/component/consul/ConsulRegistry.java | 2 +-
.../camel/component/cxf/common/header/CxfHeaderFilterStrategy.java | 2 +-
.../org/apache/camel/component/cxf/transport/CamelDestination.java | 2 +-
.../src/main/java/org/apache/camel/component/cxf/CxfConsumer.java | 2 +-
.../src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java | 6 +++---
.../src/main/java/org/apache/camel/component/cxf/CxfProducer.java | 2 +-
.../main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java | 2 +-
.../java/org/apache/camel/component/directvm/DirectVmProducer.java | 4 ++--
20 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQComponent.java b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQComponent.java
index 7626ce1..d5ffacc 100644
--- a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQComponent.java
+++ b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQComponent.java
@@ -225,7 +225,7 @@ public class ActiveMQComponent extends JmsComponent {
for (Service s : pooledConnectionFactoryServiceList) {
try {
s.stop();
- } catch (Throwable e) {
+ } catch (Exception e) {
// ignore
}
}
@@ -234,7 +234,7 @@ public class ActiveMQComponent extends JmsComponent {
for (SingleConnectionFactory s : singleConnectionFactoryList) {
try {
s.destroy();
- } catch (Throwable e) {
+ } catch (Exception e) {
// ignore
}
}
diff --git a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java
index 295044f..cf6b7d9 100644
--- a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java
+++ b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/helper/AhcHelper.java
@@ -143,7 +143,7 @@ public final class AhcHelper {
"Cannot analyze the Exchange.HTTP_PATH header, due to: cannot find the right HTTP_BASE_URI",
exchange);
}
- } catch (Throwable t) {
+ } catch (Exception t) {
throw new RuntimeExchangeException(
"Cannot analyze the Exchange.HTTP_PATH header, due to: " + t.getMessage(), exchange, t);
}
diff --git a/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java
index 05b0414..72d330b 100644
--- a/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java
+++ b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java
@@ -185,7 +185,7 @@ public class AvroListener {
try {
consumer.getProcessor().process(exchange);
- } catch (Throwable e) {
+ } catch (Exception e) {
consumer.getExceptionHandler().handleException(e);
}
diff --git a/components/camel-aws-s3/src/main/java/org/apache/camel/component/aws/s3/S3Consumer.java b/components/camel-aws-s3/src/main/java/org/apache/camel/component/aws/s3/S3Consumer.java
index cd2afeb..fd74577 100644
--- a/components/camel-aws-s3/src/main/java/org/apache/camel/component/aws/s3/S3Consumer.java
+++ b/components/camel-aws-s3/src/main/java/org/apache/camel/component/aws/s3/S3Consumer.java
@@ -130,7 +130,7 @@ public class S3Consumer extends ScheduledBatchPollingConsumer {
Exchange exchange = getEndpoint().createExchange(s3Object);
answer.add(exchange);
}
- } catch (Throwable e) {
+ } catch (Exception e) {
LOG.warn("Error getting S3Object due: {}", e.getMessage(), e);
// ensure all previous gathered s3 objects are closed
// if there was an exception creating the exchanges in this batch
diff --git a/components/camel-aws-swf/src/main/java/org/apache/camel/component/aws/swf/CamelWorkflowDefinition.java b/components/camel-aws-swf/src/main/java/org/apache/camel/component/aws/swf/CamelWorkflowDefinition.java
index 7158043..f27fbfb 100644
--- a/components/camel-aws-swf/src/main/java/org/apache/camel/component/aws/swf/CamelWorkflowDefinition.java
+++ b/components/camel-aws-swf/src/main/java/org/apache/camel/component/aws/swf/CamelWorkflowDefinition.java
@@ -100,7 +100,7 @@ public class CamelWorkflowDefinition extends WorkflowDefinition {
LOGGER.debug("Processing workflow signalReceived");
swfWorkflowConsumer.signalReceived(parameters);
- } catch (Throwable e) {
+ } catch (Exception e) {
throwWorkflowException(dataConverter, e);
throw new IllegalStateException("Unreacheable");
}
@@ -113,7 +113,7 @@ public class CamelWorkflowDefinition extends WorkflowDefinition {
Object result = swfWorkflowConsumer.getWorkflowState(null);
return dataConverter.toData(result);
- } catch (Throwable e) {
+ } catch (Exception e) {
throwWorkflowException(dataConverter, e);
throw new IllegalStateException("Unreachable");
}
diff --git a/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java b/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
index 6afa9a7..405f941 100644
--- a/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
+++ b/components/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
@@ -195,7 +195,7 @@ public class AWS2S3Consumer extends ScheduledBatchPollingConsumer {
IOHelper.close(s3Object);
}
}
- } catch (Throwable e) {
+ } catch (Exception e) {
LOG.warn("Error getting S3Object due: {}", e.getMessage(), e);
// ensure all previous gathered s3 objects are closed
// if there was an exception creating the exchanges in this batch
diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
index a137130..284abba 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractBeanProcessor.java
@@ -70,7 +70,7 @@ public abstract class AbstractBeanProcessor extends AsyncProcessorSupport {
// fallback and use old way
beanInfo = beanHolder.getBeanInfo();
}
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
callback.done(true);
return true;
@@ -105,7 +105,7 @@ public abstract class AbstractBeanProcessor extends AsyncProcessorSupport {
}
try {
target.process(exchange);
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
}
callback.done(true);
@@ -123,7 +123,7 @@ public abstract class AbstractBeanProcessor extends AsyncProcessorSupport {
MethodInvocation invocation;
try {
invocation = beanInfo.createInvocation(bean, exchange);
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
callback.done(true);
return true;
diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/DefaultBeanProcessorFactory.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/DefaultBeanProcessorFactory.java
index 58a657b..e3affca 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/DefaultBeanProcessorFactory.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/DefaultBeanProcessorFactory.java
@@ -123,7 +123,7 @@ public final class DefaultBeanProcessorFactory extends ServiceSupport
try {
LOG.debug("Attempting to create new bean instance from class: {} via auto-wiring enabled", clazz);
bean = CamelContextHelper.newInstance(camelContext, clazz);
- } catch (Throwable e) {
+ } catch (Exception e) {
LOG.debug("Error creating new bean instance from class: {}. This exception is ignored", clazz, e);
}
}
diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index 1b04d3a..252d4af 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -287,7 +287,7 @@ public class MethodInfo {
exchange.setException(e.getTargetException());
callback.done(true);
return true;
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
callback.done(true);
return true;
diff --git a/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java b/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
index 14f666c..21a27d7 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/language/bean/BeanExpression.java
@@ -360,7 +360,7 @@ public class BeanExpression implements Expression, Predicate {
if (resultExchange.getException() != null) {
exchange.setException(resultExchange.getException());
}
- } catch (Throwable e) {
+ } catch (Exception e) {
throw new RuntimeBeanExpressionException(exchange, beanName, methodName, e);
}
diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkProducer.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkProducer.java
index 25ac782..4bc6426 100644
--- a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkProducer.java
+++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkProducer.java
@@ -50,7 +50,7 @@ public class BeanstalkProducer extends DefaultAsyncProducer {
public boolean process(final Exchange exchange, final AsyncCallback callback) {
try {
executor.submit(new RunCommand(exchange, callback));
- } catch (Throwable t) {
+ } catch (Exception t) {
exchange.setException(t);
callback.done(true);
return true;
@@ -110,7 +110,7 @@ public class BeanstalkProducer extends DefaultAsyncProducer {
public void run() {
try {
doRun();
- } catch (Throwable t) {
+ } catch (Exception t) {
exchange.setException(t);
} finally {
if (callback != null) {
diff --git a/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java b/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
index 063dcd8..25bee7f 100644
--- a/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
+++ b/components/camel-cm-sms/src/main/java/org/apache/camel/component/cm/CMSenderOneMessageImpl.java
@@ -251,7 +251,7 @@ public class CMSenderOneMessageImpl implements CMSender {
}
} catch (final IOException io) {
throw new CMDirectException(io);
- } catch (Throwable t) {
+ } catch (Exception t) {
if (!(t instanceof CMDirectException)) {
// Chain it
t = new CMDirectException(t);
diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulRegistry.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulRegistry.java
index 0d7f8f2..49b6276 100644
--- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulRegistry.java
+++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulRegistry.java
@@ -91,7 +91,7 @@ public class ConsulRegistry implements Registry {
}
try {
return type.cast(object);
- } catch (Throwable e) {
+ } catch (Exception e) {
String msg = "Found bean: " + name + " in Consul Registry: " + this + " of type: " + object.getClass().getName()
+ "expected type was: " + type;
throw new NoSuchBeanException(name, msg, e);
diff --git a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderFilterStrategy.java b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderFilterStrategy.java
index 4658178..2330f00 100644
--- a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderFilterStrategy.java
+++ b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/common/header/CxfHeaderFilterStrategy.java
@@ -128,7 +128,7 @@ public class CxfHeaderFilterStrategy extends DefaultHeaderFilterStrategy {
try {
messageHeaderfilter.filter(direction, (List<Header>) value);
- } catch (Throwable t) {
+ } catch (Exception t) {
if (LOG.isDebugEnabled()) {
LOG.debug("Failed to cast value to Header<List> due to {}", t.toString(), t);
}
diff --git a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
index db7fe14..7b8d122 100644
--- a/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
+++ b/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
@@ -192,7 +192,7 @@ public class CamelDestination extends AbstractDestination implements Configurabl
public void process(Exchange exchange) {
try {
incoming(exchange);
- } catch (Throwable ex) {
+ } catch (Exception ex) {
exchange.setException(ex);
}
}
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
index cac8479..58096c7 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
@@ -121,7 +121,7 @@ public class CxfConsumer extends DefaultConsumer implements Suspendable {
private EndpointReferenceType getReplyTo(Object o) {
try {
return (EndpointReferenceType) o.getClass().getMethod("getReplyTo").invoke(o);
- } catch (Throwable t) {
+ } catch (Exception t) {
throw new Fault(t);
}
}
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
index e431e90..d4cd987 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
@@ -578,7 +578,7 @@ public class CxfEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
try {
Object sf = factoryBean.getClass().getMethod("getServiceFactory").invoke(factoryBean);
sf.getClass().getMethod("setWrapped", Boolean.TYPE).invoke(sf, wrapped);
- } catch (Throwable t) {
+ } catch (Exception t) {
throw new RuntimeException(t);
}
}
@@ -1017,7 +1017,7 @@ public class CxfEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
PropertyBindingSupport.bindProperties(getCamelContext(),
this,
this.properties);
- } catch (Throwable e) {
+ } catch (Exception e) {
// TODO: Why dont't we rethrown this exception
LOG.warn("Error setting CamelContext. This exception will be ignored.", e);
}
@@ -1039,7 +1039,7 @@ public class CxfEndpoint extends DefaultEndpoint implements AsyncEndpoint, Heade
PropertyBindingSupport.bindProperties(getCamelContext(),
this,
this.properties);
- } catch (Throwable e) {
+ } catch (Exception e) {
// TODO: Why dont't we rethrown this exception
LOG.warn("Error setting properties. This exception will be ignored.", e);
}
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
index 9dc3928..bc4eada 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
@@ -119,7 +119,7 @@ public class CxfProducer extends DefaultAsyncProducer {
if (boi.getOperationInfo().isOneWay()) {
callback.done(false);
}
- } catch (Throwable ex) {
+ } catch (Exception ex) {
// error occurred before we had a chance to go async
// so set exception and invoke callback true
camelExchange.setException(ex);
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
index f54b8c9..cd90b79 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
@@ -964,7 +964,7 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
private static String getXMLString(Element el) {
try {
return StaxUtils.toString(el);
- } catch (Throwable t) {
+ } catch (Exception t) {
//ignore
}
return "unknown content";
diff --git a/components/camel-directvm/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java b/components/camel-directvm/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
index 568eef7..9b31181 100644
--- a/components/camel-directvm/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
+++ b/components/camel-directvm/src/main/java/org/apache/camel/component/directvm/DirectVmProducer.java
@@ -91,14 +91,14 @@ public class DirectVmProducer extends DefaultAsyncProducer {
if (endpoint.isPropagateProperties()) {
exchange.getProperties().putAll(submitted.getProperties());
}
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
} finally {
callback.done(done);
}
});
- } catch (Throwable e) {
+ } catch (Exception e) {
exchange.setException(e);
}