Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-6728

Kafka Connect Header Null Pointer Exception

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.1.1, 2.0.0
    • Component/s: KafkaConnect
    • Labels:
      None
    • Environment:
      Linux Mint

      Description

      I am trying to use the newly released Kafka Connect that supports headers by using the standalone connector to write to a text file (so in this case I am only using the sink component)

      I am sadly greeted by a NullPointerException :

      ERROR WorkerSinkTask{id=local-file-sink-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:172)
      java.lang.NullPointerException
          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:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
      

      I launched zookeeper and kafka 1.1.0 locally and sent a ProducerRecord[String, Array[Byte]] using a KafkaProducer[String, Array[Byte]] with a header that has a key and value.

      I can read the record with a console consumer as well as using a KafkaConsumer (where in this case I can see the content of the header of the record I sent previously) so no problem here.

      I only made two changes to the kafka configuration:
          - I used the StringConverter for the key and the ByteArrayConverter for the value.
          - I also changed the topic where the sink would connect to.

      If I forgot something please tell me so as it is the first time I am creating an issue on Jira.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                rhauch Randall Hauch
                Reporter:
                hwki Philippe Hong
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: