[ https://issues.apache.org/jira/browse/CAMEL-16084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17272807#comment-17272807 ]
Zoran Regvart edited comment on CAMEL-16084 at 1/27/21, 12:04 PM: ------------------------------------------------------------------ Not 100% sure what the problem is, but I played around with a simple route with split/aggregation without {{synchronous}} seems to work okay with Salesforce. This is the route: {code:java} import static java.util.Arrays.asList; import static org.apache.camel.builder.AggregationStrategies.groupedBody; from("direct:start") .split(body(), groupedBody()) .to("salesforce:getSObject?sObjectName=Contact&rawPayload=true") .transform().jsonpath("$.FirstName") .log("individual: ${body}") .end() .log("aggregated: ${body[0]} ${body[1]} ${body[2]}"); // just to get a nicer output, GroupedExchangeList overrides toString {code} I'm triggering the route with a list of IDs: {code:java} producer.sendBody("direct:start", asList("0030Y000002vBoFQAU", "0030Y000002vBoGQAU", "0030Y000002vBoHQAU")){code} This gives me: {code:java} 2021-01-27 13:02:02,425 INFO [SalesforceHttpClient@156b88f5-20] route1: individual: Rose 2021-01-27 13:02:02,503 INFO [SalesforceHttpClient@156b88f5-20] route1: individual: Sean 2021-01-27 13:02:02,587 INFO [SalesforceHttpClient@156b88f5-19] route1: individual: Jack 2021-01-27 13:02:02,626 INFO [SalesforceHttpClient@156b88f5-19] route1: aggregated: Rose Sean Jack {code} was (Author: zregvart): Not 100% sure what the problem is, but I played around with a simple route and aggregation without {{synchronous}} seems to work okay with Salesforce. This is the route: {code:java} import static java.util.Arrays.asList; import static org.apache.camel.builder.AggregationStrategies.groupedBody; from("direct:start") .split(body(), groupedBody()) .to("salesforce:getSObject?sObjectName=Contact&rawPayload=true") .transform().jsonpath("$.FirstName") .log("individual: ${body}") .end() .log("aggregated: ${body[0]} ${body[1]} ${body[2]}"); // just to get a nicer output, GroupedExchangeList overrides toString {code} I'm triggering the route with a list of IDs: {code:java} producer.sendBody("direct:start", asList("0030Y000002vBoFQAU", "0030Y000002vBoGQAU", "0030Y000002vBoHQAU")){code} This gives me: {code:java} 2021-01-27 13:02:02,425 INFO [SalesforceHttpClient@156b88f5-20] route1: individual: Rose 2021-01-27 13:02:02,503 INFO [SalesforceHttpClient@156b88f5-20] route1: individual: Sean 2021-01-27 13:02:02,587 INFO [SalesforceHttpClient@156b88f5-19] route1: individual: Jack 2021-01-27 13:02:02,626 INFO [SalesforceHttpClient@156b88f5-19] route1: aggregated: Rose Sean Jack {code} > salesforce: Out of order execution > ---------------------------------- > > Key: CAMEL-16084 > URL: https://issues.apache.org/jira/browse/CAMEL-16084 > Project: Camel > Issue Type: Bug > Components: camel-salesforce > Affects Versions: 3.7.1 > Reporter: Jeremy Ross > Assignee: Jeremy Ross > Priority: Major > > When using a salesforce operation after an aggregator, control seems to > return to the aggregate caller immediately instead of proceeding with > processors downstream from the salesforce operation. This is the behavior I'd > expect if using the aggregator with parallelProcessing. > I believe this is longstanding behavior, however with the removal of the > `synchronous` option from the salesforce component (CAMEL-14138), we've > removed a workaround to this issue. > I'm seeing the same behavior with a salesforce operation via a wiretap with a > threadpool with poolsize, maxsize and queuesize of 1, which should > effectively behave in a synchronous manner. > Test case: https://gist.github.com/jeremyross/4d7d14a33452edf236faefda77ad3e3d -- This message was sent by Atlassian Jira (v8.3.4#803005)