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


The following commit(s) were added to refs/heads/main by this push:
     new 3d5ae361bb7 CAMEL-19249: camel-salesforce: Blob fix (cont.)
3d5ae361bb7 is described below

commit 3d5ae361bb7d286c40a1ecdfda2a27928b81d41a
Author: Jeremy Ross <[email protected]>
AuthorDate: Tue Apr 4 10:00:22 2023 -0500

    CAMEL-19249: camel-salesforce: Blob fix (cont.)
---
 .../salesforce/api/FieldsToNullPropertyFilter.java         | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/FieldsToNullPropertyFilter.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/FieldsToNullPropertyFilter.java
index 0f32666fc25..cd38ea8c0a0 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/FieldsToNullPropertyFilter.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/FieldsToNullPropertyFilter.java
@@ -31,8 +31,18 @@ public class FieldsToNullPropertyFilter extends 
SimpleBeanPropertyFilter {
 
         AbstractSObjectBase sob = (AbstractSObjectBase) pojo;
         String fieldName = writer.getName();
-        Object fieldValue = FieldUtils.readField(pojo, fieldName, true);
-        if (sob.getFieldsToNull().contains(writer.getName()) || fieldValue != 
null) {
+        Object fieldValue = null;
+        boolean failedToReadFieldValue = false;
+        try {
+            fieldValue = FieldUtils.readField(pojo, fieldName, true);
+        }
+        catch (IllegalArgumentException e) {
+            // This happens if the backing field for the getter doesn't match 
the name provided to @JsonProperty
+            // This is expected to happen in the case of blob fields, e.g., 
ContentVersion.getVersionDataUrl(),
+            // whose backing property is specified as @JsonData("VersionData")
+            failedToReadFieldValue = true;
+        }
+        if (sob.getFieldsToNull().contains(writer.getName()) || fieldValue != 
null || failedToReadFieldValue) {
             writer.serializeAsField(pojo, jgen, provider);
         } else {
             writer.serializeAsOmittedField(pojo, jgen, provider);

Reply via email to