[ https://issues.apache.org/jira/browse/CAMEL-15233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17149873#comment-17149873 ]
Claus Ibsen commented on CAMEL-15233: ------------------------------------- Hi Edgar Yes this looks great. And since this is an internal change only and fixes/improves this then I can see us backport this to 2.25.x. The source from salesforce is BSD-3 which we can accept For the unit test can you find another way with the reflection to avoid using log4j util, as logging library. And when ready can you create a PR. > 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 > > 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)