[
https://issues.apache.org/jira/browse/CAMEL-13878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16941649#comment-16941649
]
Claus Ibsen commented on CAMEL-13878:
-------------------------------------
You can set bridgeEndpoint=true
> Message is forwarded to the wrong Kafka Topic
> ---------------------------------------------
>
> Key: CAMEL-13878
> URL: https://issues.apache.org/jira/browse/CAMEL-13878
> Project: Camel
> Issue Type: Bug
> Components: camel-kafka
> Affects Versions: 2.24.1
> Reporter: Klearchos Klearchou
> Assignee: Ramu
> Priority: Major
>
> I have 3 Apache Spring Boot applications and 3 topics.
> Let's call them Topic A, B and C and the Spring Boot applications FirstApp,
> SecondApp and ThridApp. I use Java DSL for the Kafka configuration.
> The FirstApp creates a message to Kafka Topic A.
> The SecondApp reads from Topic A makes transformations and passes each value
> to Topic B.
> The ThirdApp reads from Topic B and after transformations tries to pass it to
> Topic C.
> At this point through the debugger I saw that at the class
> org.apache.camel.component.kafka.KafkaProducer and at the method
> protected Iterator<ProducerRecord> createRecorder(Exchange exchange)
> something strange is happening.
> The headerTopic (line 140) from the following line:
> String headerTopic = exchange.getIn().getHeader(KafkaConstants.TOPIC,
> String.class);
> contains the topic A! The correct topic that I have clearly set through the
> Java DSL can be found under the line 137:
> String topic = endpoint.getConfiguration().getTopic();
> As a workaround I have entered the following line inside a processor at the
> SecondProgram:
> exchange.getIn().setHeader(KafkaConstants.TOPIC, null);
> This has the side-effect that the headerTopic at line 140 is empty and thus
> the correct topic from line 137 is used.
> I believe that since I have clearly set the destination topic at the
> ThirdProgram to Topic C then Apache Camel should not override this with Topic
> A.
> It looks like a bug since from the method description I understand that we
> try to avoid circular loops.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)