[ https://issues.apache.org/jira/browse/CAMEL-15233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-15233: -------------------------------- Fix Version/s: 3.4.1 > camel-salesforce - CometDReplayExtension does not keep replayId for each > message/channel > ---------------------------------------------------------------------------------------- > > Key: CAMEL-15233 > URL: https://issues.apache.org/jira/browse/CAMEL-15233 > Project: Camel > Issue Type: Bug > Components: camel-salesforce > Reporter: Edgar Chernick > Priority: Major > Fix For: 2.25.2, 3.4.1, 3.5.0 > > > CometDReplayExtension class try to read the replayId from the message by > doing > {code} > final Object value = message.get(EXTENSION_NAME); > {code} > However, the replayId (based on this > [https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/using_streaming_api_durability.htm]) > is actually within data -> event -> replayId. > By doing the following (the same thing the salesforce consumer does > https://github.com/apache/camel/blob/master/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java#L250) > {code} > final Map<String, Object> data = (Map<String, Object>) message.get("data"); > final Map<String, Object> event = (Map<String, Object>) data.get("event"); > final Object value = event.get("replayId"); > {code} > I was able to properly fetch the replayId from the message. > Since the current version does not do this properly, If the component loses > the connection and has to subscribe again it will use the replayid value from > the endpoint which it will be outdated if any message was read before the > connection failure. -- This message was sent by Atlassian Jira (v8.3.4#803005)