[
https://issues.apache.org/jira/browse/KAFKA-9109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17564203#comment-17564203
]
Romain Quinio edited comment on KAFKA-9109 at 7/8/22 9:52 AM:
--------------------------------------------------------------
I've faced the same issue when upgrading a library to new Kafka3 PAPI, very
annoying.
In order to support both old and new APIs via the ProcessorAdapter, our
decorators of org.apache.kafka.streams.processor.api.ProcessorContext must
actually implement InternalProcessorContext (by extending
org.apache.kafka.streams.processor.internals.ProcessorContextImpl) to
workaround the cast done at
https://github.com/apache/kafka/blob/63a6130af30536d67fca5802005695a84c875b5e/streams/src/main/java/org/apache/kafka/streams/processor/internals/ProcessorAdapter.java#L56
was (Author: rquinio):
I've faced the same issue when upgrading a library to new PAPI, very annoying.
In order to support both old and new APIs, our decorators of
org.apache.kafka.streams.processor.api.ProcessorContext must actually implement
InternalProcessorContext (by extending
org.apache.kafka.streams.processor.internals.ProcessorContextImpl) to
workaround the cast...
> Get Rid of Cast from ProcessorContext to InternalProcessorContext
> -----------------------------------------------------------------
>
> Key: KAFKA-9109
> URL: https://issues.apache.org/jira/browse/KAFKA-9109
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: Bruno Cadonna
> Priority: Major
>
> The following cast is often used in Kafka Streams code.
> {code:java}
> public void init(final ProcessorContext context) {
> internalProcessorContext = (InternalProcessorContext) context;
> ...
> }
> {code}
> This code leads to a {{ClassCastException}} if the implementation of the
> {{ProcessorContext}} is not an {{InternalProcessorContext}}, which defeats
> the purpose of using interface {{ProcessorContext}} in the API.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)