You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Abdulhamid (JIRA)" <ji...@apache.org> on 2019/04/04 07:38:00 UTC
[jira] [Updated] (CAMEL-13391) camel-kafka : no-string message
headers are extracted as null ( type converter issue)
[ https://issues.apache.org/jira/browse/CAMEL-13391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Abdulhamid updated CAMEL-13391:
-------------------------------
Affects Version/s: (was: 2.22.1)
2.21.2
> camel-kafka : no-string message headers are extracted as null ( type converter issue)
> -------------------------------------------------------------------------------------
>
> Key: CAMEL-13391
> URL: https://issues.apache.org/jira/browse/CAMEL-13391
> Project: Camel
> Issue Type: Bug
> Components: camel-kafka
> Affects Versions: 2.21.2
> Reporter: Abdulhamid
> Priority: Minor
>
> While trying to read non-String ( Ex-Boolean, Integer) message headers from a consumed message, the headers are returned as null.
> The headers of type "String" are converted correctly.
> Looks like a type-convertor issue, Message headers in a consumed message are in "byte[]" format.
> Below is a simple program to demonstrate:
> {code:java}
> // code placeholder
> package com.test.KafkaSimpleProject;
> import org.apache.camel.CamelContext;
> import org.apache.camel.Message;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.impl.DefaultCamelContext;
> public class App2 {
> public static void main(String[] args) throws Exception {
> CamelContext context = new DefaultCamelContext();
> try {
> context.addRoutes(new RouteBuilder() {
> @Override
> public void configure() throws Exception {
> //producer route
> from("timer:foo?period=3000&repeatCount=1000&delay=3000")
> .setBody()
> .constant("This is kafka message")
> .setHeader("name")
> .simple("ApacheCamelkafka", String.class)
> .setHeader("contact")
> .simple("123123", Integer.class)
> .setHeader("trueFalse")
> .simple("false", Boolean.class)
> .to("kafka:test?brokers=localhost:9092");
> //Consumer route
> from("kafka:test?brokers=localhost:9092")
> .process(new org.apache.camel.Processor() {
> public void process(org.apache.camel.Exchange exchange)
> throws Exception {
> Message in = exchange.getIn();
> String name = in .getHeader("name", String.class);
> Integer contact = in .getHeader("contact", Integer.class);
> Boolean trueFalse = in .getHeader("trueFalse", Boolean.class);
> System.out.println("Name:" + name);
> System.out.println("contact:" + contact);
> System.out.println("trueFalse:" + trueFalse);
> }
> });
> }
> });
> context.start();
> Thread.sleep(20000000);
> } finally {
> context.stop();
> }
> }
> }
> {code}
> Expected output:
> Name: ApacheCamelkafka
> contact: 123123
> trueFalse: false
> Actual output:
> Name: ApacheCamelkafka
> contact: null
> trueFalse: null
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)