You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "A. Sophie Blee-Goldman (Jira)" <ji...@apache.org> on 2022/11/07 08:12:00 UTC

[jira] [Commented] (KAFKA-14325) NullPointer in ProcessorParameters.toString

    [ https://issues.apache.org/jira/browse/KAFKA-14325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17629652#comment-17629652 ] 

A. Sophie Blee-Goldman commented on KAFKA-14325:
------------------------------------------------

Hm, nice catch, we should definitely fix this up.

 

Hey [~jeqo] , can you give this class a quick glance to see if there is anything else that's still accessing/using the old processorSupplier field instead of the new/fixed key one?

> NullPointer in ProcessorParameters.toString
> -------------------------------------------
>
>                 Key: KAFKA-14325
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14325
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 3.3.1
>            Reporter: Martin Hyldgaard
>            Priority: Minor
>
> After switching from {{Transformer}} to using {{FixedKeyProcessor}} I get some NullPointer exceptions logged. It seems to be due to {{ProcessorParameters::toString}} using it's field {{processorSupplier}} [without a null check|https://github.com/apache/kafka/blob/0a045d4ef7d67dbe35b8fd2e1c51df87af19a0ab/streams/src/main/java/org/apache/kafka/streams/kstream/internals/graph/ProcessorParameters.java#L133]. After KAFKA-13654: Extend KStream process with new Processor API ([#11993|https://github.com/apache/kafka/pull/11993]) this field can be null and instead the field {{fixedKeyProcessorSupplier}} is set.
>  
> Stack trace
> {code:java}
> java.lang.NullPointerException: Cannot invoke "org.apache.kafka.streams.processor.api.ProcessorSupplier.get()" because "this.processorSupplier" is null
>     at org.apache.kafka.streams.kstream.internals.graph.ProcessorParameters.toString(ProcessorParameters.java:133)
>     at java.base/java.lang.String.valueOf(String.java:4218)
>     at java.base/java.lang.StringBuilder.append(StringBuilder.java:173)
>     at org.apache.kafka.streams.kstream.internals.graph.ProcessorGraphNode.toString(ProcessorGraphNode.java:52)
>     at org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:277)
>     at org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:249)
>     at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:211)
>     at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:161)
>     at ch.qos.logback.classic.spi.LoggingEvent.getFormattedMessage(LoggingEvent.java:293)
>     at ch.qos.logback.classic.spi.LoggingEvent.prepareForDeferredProcessing(LoggingEvent.java:206)
>     at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:223)
>     at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)
>     at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
>     at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
>     at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
>     at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
>     at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
>     at ch.qos.logback.classic.Logger.filterAndLog_2(Logger.java:414)
>     at ch.qos.logback.classic.Logger.debug(Logger.java:490)
>     at org.apache.kafka.streams.kstream.internals.InternalStreamsBuilder.buildAndOptimizeTopology(InternalStreamsBuilder.java:293)
>     at org.apache.kafka.streams.StreamsBuilder.build(StreamsBuilder.java:628) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)