[
https://issues.apache.org/jira/browse/KAFKA-7125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jouni updated KAFKA-7125:
-------------------------
Description:
After adding a a processor and a sink to topology after a globalstore and then
calling StreamBuilder.build().describe() again (for debugging purposes and to
check I got the topology right), had the following exception and stacktrace:
{{Caused by: java.util.NoSuchElementException: null}}
{{ at java.util.HashMap$HashIterator.nextNode(HashMap.java:1444)
~[na:1.8.0_171]}}
{{ at java.util.HashMap$KeyIterator.next(HashMap.java:1466)
~[na:1.8.0_171]}}
{{ at
org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describeGlobalStore(InternalTopologyBuilder.java:1323)
~[kafka-streams-1.1.0.jar:na]}}
{{ at
org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describe(InternalTopologyBuilder.java:1306)
~[kafka-streams-1.1.0.jar:na]}}
{{ at org.apache.kafka.streams.Topology.describe(Topology.java:647)
~[kafka-streams-1.1.0.jar:na]}}
Snipped of code that caused this:
{{ TopologyDescription td = builder.build().describe();}}
{{ String parent = null;}}
{{ // We get an iterator to a TreeSet sorted by processing order, and
just want the last one.}}
{{ for (TopologyDescription.GlobalStore store : td.globalStores()) {}}
{{ parent = store.processor().name();}}
\{{ }}}
{{ TopologyDescription tdtd = builder.build().describe();}}
{{ builder.build().addProcessor("ROUTES-TO-SERVICES-FORWARDER", new
UnneededCruftSupplier(), parent);}}
{{ builder.build().addSink("FST-ROUTES-TO-SERVICES",
"fst-routes-to-services", Serdes.String().serializer(),
fstServiceListSerde.serializer(), "ROUTES-TO-SERVICES-FORWARDER");}}
{{ TopologyDescription tdtdtd = builder.build().describe();}}
Note that the exception is thrown on the last line of the code snippet, calling
describe again before adding anything works fine.
was:
After adding a a processor and a sink to topology after a globalstore and then
calling StreamBuilder.build().describe() again (for debugging purposes and to
check I got the topology), had the following exception and stacktrace:
{{Caused by: java.util.NoSuchElementException: null}}
{{ at java.util.HashMap$HashIterator.nextNode(HashMap.java:1444)
~[na:1.8.0_171]}}
{{ at java.util.HashMap$KeyIterator.next(HashMap.java:1466) ~[na:1.8.0_171]}}
{{ at
org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describeGlobalStore(InternalTopologyBuilder.java:1323)
~[kafka-streams-1.1.0.jar:na]}}
{{ at
org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describe(InternalTopologyBuilder.java:1306)
~[kafka-streams-1.1.0.jar:na]}}
{{ at org.apache.kafka.streams.Topology.describe(Topology.java:647)
~[kafka-streams-1.1.0.jar:na]}}
Snipped of code that caused this:
{{ TopologyDescription td = builder.build().describe();}}
{{ String parent = null;}}
{{ // We get an iterator to a TreeSet sorted by processing order, and
just want the last one.}}
{{ for (TopologyDescription.GlobalStore store : td.globalStores()) {}}
{{ parent = store.processor().name();}}
{{ }}}
{{ TopologyDescription tdtd = builder.build().describe();}}
{{ builder.build().addProcessor("ROUTES-TO-SERVICES-FORWARDER", new
UnneededCruftSupplier(), parent);}}
{{ builder.build().addSink("FST-ROUTES-TO-SERVICES",
"fst-routes-to-services", Serdes.String().serializer(),
fstServiceListSerde.serializer(), "ROUTES-TO-SERVICES-FORWARDER");}}
{{ TopologyDescription tdtdtd = builder.build().describe();}}
Note that the exception is thrown on the last line of the code snippet, calling
describe again before adding anything works fine.
> Calling StreamsBuilderbuilder.build().describe() causes
> java.util.NoSuchElementException: null
> ----------------------------------------------------------------------------------------------
>
> Key: KAFKA-7125
> URL: https://issues.apache.org/jira/browse/KAFKA-7125
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 1.1.0
> Reporter: Jouni
> Priority: Minor
>
> After adding a a processor and a sink to topology after a globalstore and
> then calling StreamBuilder.build().describe() again (for debugging purposes
> and to check I got the topology right), had the following exception and
> stacktrace:
> {{Caused by: java.util.NoSuchElementException: null}}
> {{ at java.util.HashMap$HashIterator.nextNode(HashMap.java:1444)
> ~[na:1.8.0_171]}}
> {{ at java.util.HashMap$KeyIterator.next(HashMap.java:1466)
> ~[na:1.8.0_171]}}
> {{ at
> org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describeGlobalStore(InternalTopologyBuilder.java:1323)
> ~[kafka-streams-1.1.0.jar:na]}}
> {{ at
> org.apache.kafka.streams.processor.internals.InternalTopologyBuilder.describe(InternalTopologyBuilder.java:1306)
> ~[kafka-streams-1.1.0.jar:na]}}
> {{ at org.apache.kafka.streams.Topology.describe(Topology.java:647)
> ~[kafka-streams-1.1.0.jar:na]}}
> Snipped of code that caused this:
> {{ TopologyDescription td = builder.build().describe();}}
> {{ String parent = null;}}
> {{ // We get an iterator to a TreeSet sorted by processing order, and
> just want the last one.}}
> {{ for (TopologyDescription.GlobalStore store : td.globalStores()) {}}
> {{ parent = store.processor().name();}}
> \{{ }}}
> {{ TopologyDescription tdtd = builder.build().describe();}}
> {{ builder.build().addProcessor("ROUTES-TO-SERVICES-FORWARDER", new
> UnneededCruftSupplier(), parent);}}
> {{ builder.build().addSink("FST-ROUTES-TO-SERVICES",
> "fst-routes-to-services", Serdes.String().serializer(),
> fstServiceListSerde.serializer(), "ROUTES-TO-SERVICES-FORWARDER");}}
> {{ TopologyDescription tdtdtd = builder.build().describe();}}
> Note that the exception is thrown on the last line of the code snippet,
> calling describe again before adding anything works fine.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)