François de Parscau created CAMEL-22830:
-------------------------------------------
Summary: ReplayId ignored when using multiple routes with same
salesforce channel
Key: CAMEL-22830
URL: https://issues.apache.org/jira/browse/CAMEL-22830
Project: Camel
Issue Type: Bug
Components: camel-salesforce
Affects Versions: 4.8.1
Reporter: François de Parscau
We've found a problem in the way the replayId is handled in the
camel-salesforce component.
{code:java}
SalesforceComponent sf2 = new SalesforceComponent();
sf2.setLoginConfig(loginConfig);
sf2.setLazyStartProducer(true);
camelContext.addComponent("salesforcesub", sf2);
SalesforceComponent sf3 = new SalesforceComponent();
sf3.setLoginConfig(loginConfig);
sf3.setLazyStartProducer(true);
camelContext.addComponent("salesforcesubnoreplay", sf3);
...
//Route 1:
salesforcesub://subscribe:event/Talend_to_ST_Event__e?rawPayload=true&replayId=-2&bridgeErrorHandler=true
//Route 2 :
salesforcesubnoreplay://subscribe:event/Talend_to_ST_Event__e?rawPayload=true&replayId=-1&bridgeErrorHandler=true
{code}
With this setup, both routes will use replayId=-2 because this is store in a
static map of the subscriptionHelper and key is the channelName (here
Talend_to_ST_Event)
This map causes also issues in an OSGI environment : since the bundle
containing camel-salesforce code is different from the route, restarting the
route does not reset the Map, so it does not read all the event from sales
force.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)