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

John Roesler commented on KAFKA-9259:
-------------------------------------

Thanks for the report, [~mjsax]!

Just a quick additional note for whoever picks this up: To properly 
parameterize windowed serdes, you need extra information about the windows (eg 
the window size). Theoretically, the suppress operator could find this out by 
traversing the topology upstream to find it on its window-definition ancestor, 
but it might get a bit brittle. If this turns out to be a mess, it would 
probably be cleaner just to implement 
https://issues.apache.org/jira/browse/KAFKA-9260 instead, which would also fix 
this issue.

> suppress() for windowed-Serdes does not work with default serdes
> ----------------------------------------------------------------
>
>                 Key: KAFKA-9259
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9259
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 2.1.0
>            Reporter: Matthias J. Sax
>            Priority: Major
>
> The suppress() operator either inherits serdes from its upstream operator or 
> falls back to default serdes from the config.
> If the upstream operator is an windowed aggregation, the window-aggregation 
> operator wraps the user passed-in serde with a window-serde and pushed it 
> into suppress() – however, if default serdes are used, the window-aggregation 
> operator cannot push anything into suppress(). At runtime, it just creates a 
> default serde and wraps it according. For this case, suppress() also falls 
> back to default serdes; however, it does not wrap the serde and thus a 
> ClassCastException is thrown when the serde is used later.
> suppress() is already aware if the upstream aggregation is time/session 
> windowed or not and thus should use this information to wrap default serdes 
> accordingly.
> The current workaround for windowed-suppress is to overwrite the default 
> serde upstream to suppress(), such that suppress() inherits serdes and does 
> not fall back to default serdes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to