[
https://issues.apache.org/jira/browse/KAFKA-9517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Bejeck updated KAFKA-9517:
-------------------------------
Priority: Blocker (was: Critical)
> KTable Joins Without Materialized Argument Yield Results That Further Joins
> NPE On
> ----------------------------------------------------------------------------------
>
> Key: KAFKA-9517
> URL: https://issues.apache.org/jira/browse/KAFKA-9517
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 2.4.0
> Reporter: Paul Snively
> Priority: Blocker
> Fix For: 2.5.0, 2.4.1
>
>
> The `KTable` API implemented [[here||#L842-L844]]
> [https://github.com/apache/kafka/blob/2.4.0/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableImpl.java#L842-L844]
> []|#L842-L844]] calls `doJoinOnForeignKey` with an argument of
> `Materialized.with(null, null)`, as apparently do several other APIs. As the
> comment spanning [these lines|#L1098-L1099]] makes clear, the result is a
> `KTable` whose `valueSerde` (as a `KTableImpl`) is `null`. Therefore,
> attempts to `join` etc. on the resulting `KTable` fail with a
> `NullPointerException`.
> While there is an obvious workaround—explicitly construct the required
> `Materialized` and use the APIs that take it as an argument—I have to admit I
> find the existence of public APIs with this sort of bug, particularly when
> the bug is literally documented as a comment in the source code, astonishing
> to the point of incredulity. It calls the quality and trustworthiness of
> Kafka Streams into serious question, and if a resolution is not forthcoming
> within a week, we will be left with no other option but to consider technical
> alternatives.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)