[ https://issues.apache.org/jira/browse/KAFKA-8946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
huxihx updated KAFKA-8946: -------------------------- Component/s: KafkaConnect > Single byte header issues WARN logging > -------------------------------------- > > Key: KAFKA-8946 > URL: https://issues.apache.org/jira/browse/KAFKA-8946 > Project: Kafka > Issue Type: Improvement > Components: KafkaConnect > Affects Versions: 2.3.0 > Reporter: Henning Treu > Priority: Minor > > Setting a single byte header like > {code:java} > headers.add("MY_CUSTOM_HEADER", new byte[] { 1 }); > {code} > will cause a WARN message with full stack trace: > {code:java} > [2019-08-29 06:27:40,599] WARN Failed to deserialize value for header > 'MY_CUSTOM_HEADER' on topic '<my_kafka_topic>', so using byte array > (org.apache.kafka.connect.storage.SimpleHeaderConverter) > java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > at java.lang.String.charAt(String.java:658) > at org.apache.kafka.connect.data.Values.parse(Values.java:816) > at org.apache.kafka.connect.data.Values.parseString(Values.java:373) > at > org.apache.kafka.connect.storage.SimpleHeaderConverter.toConnectHeader(SimpleHeaderConverter.java:64) > at > org.apache.kafka.connect.runtime.WorkerSinkTask.convertHeadersFor(WorkerSinkTask.java:501) > at > org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:469) > at > org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:301) > at > org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:205) > at > org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:173) > at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170) > at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > {code} > Since Kafka will continue with the headers as > {code:java} > Schema.BYTES_SCHEMA > {code} > the warning seems a little harsh. > There are two options: > # Handle none-String header values explicitly > # Drop the stacktrace logging and put it to an extra DEBUG log -- This message was sent by Atlassian Jira (v8.3.4#803005)