You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by je...@apache.org on 2021/12/15 20:12:19 UTC

[camel] 01/02: CAMEL-17344: camel-salesforce: swallowing exceptions

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

jeremyross pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c08783523cdc4e2e4f2b5ded56f0a27e4e72c024
Author: Jeremy Ross <je...@gmail.com>
AuthorDate: Wed Dec 15 12:24:33 2021 -0600

    CAMEL-17344: camel-salesforce: swallowing exceptions
    
    collections operations swallow exceptions
---
 ...efaultCompositeSObjectCollectionsApiClient.java | 34 +++++++++++++---------
 .../CompositeSObjectCollectionsProcessor.java      |  2 +-
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
index 75c575a..953ac60 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
@@ -85,11 +85,11 @@ public class DefaultCompositeSObjectCollectionsApiClient extends AbstractClientB
         doHttpRequest(request, new ClientResponseCallback() {
             @Override
             public void onResponse(InputStream response, Map<String, String> headers, SalesforceException ex) {
-                callback.onResponse(
-                        tryToReadListResponse(
-                                sobjectType, response),
-                        headers,
-                        ex);
+                Optional<List<T>> body = Optional.empty();
+                if (ex == null) {
+                    body = tryToReadListResponse(sobjectType, response);
+                }
+                callback.onResponse(body, headers, ex);
             }
         });
     }
@@ -124,9 +124,11 @@ public class DefaultCompositeSObjectCollectionsApiClient extends AbstractClientB
         doHttpRequest(request, new ClientResponseCallback() {
             @Override
             public void onResponse(InputStream response, Map<String, String> headers, SalesforceException ex) {
-                callback.onResponse(
-                        tryToReadListResponse(SaveSObjectResult.class, response),
-                        headers, ex);
+                Optional<List<SaveSObjectResult>> body = Optional.empty();
+                if (ex == null) {
+                    body = tryToReadListResponse(SaveSObjectResult.class, response);
+                }
+                callback.onResponse(body, headers, ex);
             }
         });
     }
@@ -152,9 +154,11 @@ public class DefaultCompositeSObjectCollectionsApiClient extends AbstractClientB
         doHttpRequest(request, new ClientResponseCallback() {
             @Override
             public void onResponse(InputStream response, Map<String, String> headers, SalesforceException ex) {
-                callback.onResponse(
-                        tryToReadListResponse(UpsertSObjectResult.class, response),
-                        headers, ex);
+                Optional<List<UpsertSObjectResult>> body = Optional.empty();
+                if (ex == null) {
+                    body = tryToReadListResponse(UpsertSObjectResult.class, response);
+                }
+                callback.onResponse(body, headers, ex);
             }
         });
     }
@@ -172,9 +176,11 @@ public class DefaultCompositeSObjectCollectionsApiClient extends AbstractClientB
         doHttpRequest(request, new ClientResponseCallback() {
             @Override
             public void onResponse(InputStream response, Map<String, String> headers, SalesforceException ex) {
-                callback.onResponse(
-                        tryToReadListResponse(DeleteSObjectResult.class, response),
-                        headers, ex);
+                Optional<List<DeleteSObjectResult>> body = Optional.empty();
+                if (ex == null) {
+                    body = tryToReadListResponse(DeleteSObjectResult.class, response);
+                }
+                callback.onResponse(body, headers, ex);
             }
         });
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/CompositeSObjectCollectionsProcessor.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/CompositeSObjectCollectionsProcessor.java
index 98319a7..03d6a20 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/CompositeSObjectCollectionsProcessor.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/CompositeSObjectCollectionsProcessor.java
@@ -172,7 +172,7 @@ public class CompositeSObjectCollectionsProcessor extends AbstractSalesforceProc
             final Exchange exchange, final Optional<? extends List<?>> responseBody, final Map<String, String> headers,
             final SalesforceException exception, final AsyncCallback callback) {
         try {
-            if (!responseBody.isPresent()) {
+            if (exception != null) {
                 exchange.setException(exception);
             } else {
                 Message in = exchange.getIn();