This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.4.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.4.x by this push:
     new 7220adf  CAMEL-15449: camel-salesforce - bulk and analytics api client 
should catch all kind of exceptions to ensure callback is triggered. Thanks to 
Michael Genereux for reporting and pointing out the problem.
7220adf is described below

commit 7220adf2db269e3585c0fb5e2736e01c4d08f669
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Aug 29 14:45:42 2020 +0200

    CAMEL-15449: camel-salesforce - bulk and analytics api client should catch 
all kind of exceptions to ensure callback is triggered. Thanks to Michael 
Genereux for reporting and pointing out the problem.
---
 .../internal/client/DefaultAnalyticsApiClient.java | 21 +++++++++++++++------
 .../internal/client/DefaultBulkApiClient.java      | 22 ++++++++++++----------
 2 files changed, 27 insertions(+), 16 deletions(-)

diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
index 9bfe64f..67c419a 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
@@ -292,8 +292,11 @@ public class DefaultAnalyticsApiClient extends 
AbstractClientBase implements Ana
     private void marshalRequest(Object input, Request request) throws 
SalesforceException {
         try {
             request.content(new 
BytesContentProvider(objectMapper.writeValueAsBytes(input)));
-        } catch (IOException e) {
-            throw new SalesforceException(String.format("Error marshaling 
request for {%s:%s} : %s", request.getMethod(), request.getURI(), 
e.getMessage()), e);
+        } catch (Throwable e) {
+            throw new SalesforceException(
+                    String.format("Error marshaling request for {%s:%s} : %s", 
request.getMethod(), request.getURI(),
+                            e.getMessage()),
+                    e);
         }
     }
 
@@ -301,8 +304,11 @@ public class DefaultAnalyticsApiClient extends 
AbstractClientBase implements Ana
 
         try {
             return objectMapper.readValue(response, responseTypeReference);
-        } catch (IOException e) {
-            throw new SalesforceException(String.format("Error unmarshaling 
response {%s:%s} : %s", request.getMethod(), request.getURI(), e.getMessage()), 
e);
+        } catch (Throwable e) {
+            throw new SalesforceException(
+                    String.format("Error unmarshaling response {%s:%s} : %s", 
request.getMethod(), request.getURI(),
+                            e.getMessage()),
+                    e);
         }
     }
 
@@ -314,8 +320,11 @@ public class DefaultAnalyticsApiClient extends 
AbstractClientBase implements Ana
 
         try {
             return objectMapper.readValue(response, responseClass);
-        } catch (IOException e) {
-            throw new SalesforceException(String.format("Error unmarshaling 
response {%s:%s} : %s", request.getMethod(), request.getURI(), e.getMessage()), 
e);
+        } catch (Throwable e) {
+            throw new SalesforceException(
+                    String.format("Error unmarshaling response {%s:%s} : %s", 
request.getMethod(), request.getURI(),
+                            e.getMessage()),
+                    e);
         }
     }
 }
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
index 813a56e..315d95e 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
@@ -87,8 +87,8 @@ public class DefaultBulkApiClient extends AbstractClientBase 
implements BulkApiC
         final Request post = getRequest(HttpMethod.POST, jobUrl(null), 
headers);
         try {
             marshalRequest(objectFactory.createJobInfo(request), post, 
APPLICATION_XML_UTF8);
-        } catch (SalesforceException e) {
-            callback.onResponse(null, Collections.emptyMap(), e);
+        } catch (Throwable e) {
+            callback.onResponse(null, Collections.emptyMap(), new 
SalesforceException(e));
             return;
         }
 
@@ -438,10 +438,11 @@ public class DefaultBulkApiClient extends 
AbstractClientBase implements BulkApiC
 
             JAXBElement<T> result = unmarshaller.unmarshal(xmlSource, 
resultClass);
             return result.getValue();
-        } catch (JAXBException | SAXException | ParserConfigurationException 
e) {
-            throw new SalesforceException(String.format("Error unmarshaling 
response {%s:%s} : %s", request.getMethod(), request.getURI(), e.getMessage()), 
e);
-        } catch (IllegalArgumentException e) {
-            throw new SalesforceException(String.format("Error unmarshaling 
response for {%s:%s} : %s", request.getMethod(), request.getURI(), 
e.getMessage()), e);
+        } catch (Throwable e) {
+            throw new SalesforceException(
+                    String.format("Error unmarshaling response for {%s:%s} : 
%s", request.getMethod(), request.getURI(),
+                            e.getMessage()),
+                    e);
         }
     }
 
@@ -452,10 +453,11 @@ public class DefaultBulkApiClient extends 
AbstractClientBase implements BulkApiC
             marshaller.marshal(input, byteStream);
 
             request.content(new BytesContentProvider(contentType, 
byteStream.toByteArray()));
-        } catch (JAXBException e) {
-            throw new SalesforceException(String.format("Error marshaling 
request for {%s:%s} : %s", request.getMethod(), request.getURI(), 
e.getMessage()), e);
-        } catch (IllegalArgumentException e) {
-            throw new SalesforceException(String.format("Error marshaling 
request for {%s:%s} : %s", request.getMethod(), request.getURI(), 
e.getMessage()), e);
+        } catch (Throwable e) {
+            throw new SalesforceException(
+                    String.format("Error marshaling request for {%s:%s} : %s", 
request.getMethod(), request.getURI(),
+                            e.getMessage()),
+                    e);
         }
     }
 

Reply via email to