[ 
https://issues.apache.org/jira/browse/CAMEL-24161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18097123#comment-18097123
 ] 

Claus Ibsen commented on CAMEL-24161:
-------------------------------------

Fixed via https://github.com/apache/camel/pull/24857

> camel-salesforce - Umbrella: medium-severity findings from July 2026 review
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-24161
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24161
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-salesforce
>            Reporter: Federico Mariani
>            Assignee: Claus Ibsen
>            Priority: Minor
>              Labels: review-2026-07
>             Fix For: 4.22.0
>
>         Attachments: camel-salesforce-review-2026-07.md
>
>
> Umbrella for the medium-severity findings of the July 2026 review of 
> camel-salesforce-component on main (4.22.0-SNAPSHOT). Full findings document 
> attached to the high-severity umbrella; low-severity findings are listed in 
> the document only.
> *Auth / session / HTTP client*
> # {{SalesforceLoginConfig:271-275}} — refresh token printed in clear text by 
> toString() (other secrets are masked) and logged at DEBUG by 
> SalesforceComponent.doStart.
> # {{SalesforceSecurityHandler:256-260}} — multipart create/update cannot be 
> replayed after 401 re-login: {{body.rewind()}} result ignored and Jetty's 
> MultiPartFormData.ContentSource does not support rewind -> retry sends an 
> empty multipart POST.
> # {{AbstractClientBase:190-199}} — replay-buffering loop treats Jetty 
> *failure* chunks (isLast()==true) as normal EOF; a body InputStream failing 
> mid-read results in a silently truncated request with no local exception.
> # {{DefaultRawClient:49-53}} — auth retry produces duplicate X-SFDC-Session 
> headers (add instead of put; Jetty copyRequest keeps custom headers), stale 
> token first.
> # {{SalesforceSecurityHandler:239-246}} — handler-driven re-logins are 
> uncoordinated: N concurrent 401'd conversations fire N token requests (no 
> single-flight like SalesforceSession.login(oldToken)).
> *Streaming / Pub/Sub*
> # {{SubscriptionHelper:203-209}} — connect-listener NPE when a channel was 
> unsubscribed concurrently (unsubscribe never removes from 
> channelsToSubscribe); remaining channels silently never resubscribed after 
> the snapshot was cleared (same class as CAMEL-20834).
> # {{PubSubApiClient:314-321}} — per-event decode failures are swallowed (log 
> only, exception handler never invoked) while the stored replayId advances 
> past the lost events; reconnects permanently skip them.
> # {{PubSubApiClient:353-369,388-397}} — corrupted replay id with 
> fallbackToLatestReplayId=false retries the same corrupt id forever; the 
> user's original replay preset is overwritten on every resubscribe.
> # {{PubSubApiClient:382-384}} — reconnect delay grows unboundedly; the 
> configured maxBackoff is only applied to the login loop.
> *REST / Bulk / Composite*
> # {{JsonRestProcessor:221-224}} — 
> RESPONSE_CLASS_DEFERRED/RESPONSE_CLASS_PREFIX exchange properties are not 
> cleaned up (unlike processStreamResultResponse) and leak into subsequent 
> producers on the same exchange.
> # {{CompositeApiProcessor:125-144}} — composite rawPayload mode discards the 
> exception whenever Salesforce returned an error body (virtually always); HTTP 
> failures reported as success.
> # {{AbstractRestProcessor:545-552}} — deleteSObjectWithId restores DTO fields 
> *after* completing the exchange (all sibling operations restore before); 
> related: {{AbstractRestProcessor:480-539}} NPEs (instead of falling back to 
> the sObjectIdValue header) when the DTO's external-id field is unset.
> _This issue was researched and filed by Claude Code (AI) on behalf of 
> Federico Mariani (fmariani). Full findings document from the review is 
> attached to the umbrella issues._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to