Description
If you accidentally pass null as the stream name in an OutgoingMessageEnvelope, you get an NPE in the producer IO thread for Kafka. The Kafka producer shouldn't really throw NPE for this (https://issues.apache.org/jira/browse/KAFKA-2105) but Samza should probably throw a more friendly error sooner.
Uncaught error in kafka producer I/O thread:
java.lang.NullPointerException
at org.apache.kafka.common.utils.Utils.utf8Length(Utils.java:174)
at org.apache.kafka.common.protocol.types.Type$5.sizeOf(Type.java:176)
at org.apache.kafka.common.protocol.types.ArrayOf.sizeOf(ArrayOf.java:55)
at org.apache.kafka.common.protocol.types.Schema.sizeOf(Schema.java:81)
at org.apache.kafka.common.protocol.types.Struct.sizeOf(Struct.java:218)
at org.apache.kafka.common.requests.RequestSend.serialize(RequestSend.java:35)
at org.apache.kafka.common.requests.RequestSend.<init>(RequestSend.java:29)
at org.apache.kafka.clients.NetworkClient.metadataRequest(NetworkClient.java:369)
at org.apache.kafka.clients.NetworkClient.maybeUpdateMetadata(NetworkClient.java:391)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:188)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
at java.lang.Thread.run(Thread.java:745)