Hi all,

I'm hitting a NPE in a very basic repro. It happens when toString() is
called on the StreamSourceNode. It is just in logging code (debug), so no
real issue.

Essentially:

val builder = StreamsBuilder()
builder.stream(Pattern.compile("foo"), Consumed.with(Serdes.ByteArray(),
Serdes.ByteArray()))
val streams = KafkaStreams(builder.build(), Properties())
streams.start()

I had a look into it, and it seems like a bug.

StreamSourceNode.toString() calls topicNames():

https://github.com/apache/kafka/blob/1dadb6db0c6848a8a1d2eee1497f9b79b6e04e0e/streams/src/main/java/org/apache/kafka/streams/kstream/internals/graph/StreamSourceNode.java#L64-L70

Which will be null if constructed with a Pattern rather than a String:

https://github.com/apache/kafka/blob/1dadb6db0c6848a8a1d2eee1497f9b79b6e04e0e/streams/src/main/java/org/apache/kafka/streams/kstream/internals/graph/SourceGraphNode.java#L49

Which causes UnmodifiableCollection to throw.

I couldn't find any mention of the issue, and git blame suggests it is not
a recent change - so I am not sure. I am also very new to the jvm so my
confidence is low.

Happy to open a JIRA ticket if someone confirms :)

Thanks,

Will

Reply via email to