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

Yunseop Eom commented on KAFKA-20875:
-------------------------------------

Update on PR #23027: https://github.com/apache/kafka/pull/23027

The PR makes the plain and timestamped window-store adapters extend 
WrappedStateStore so wrapped(), findInner(), and recursive store-type 
inspection remain available. Regression coverage verifies direct wrapping, 
inner-store discovery, and timestamped-store detection.

Focused stream tests and the full streams check pass with one unrelated timeout 
that passed under isolated rerun; checkstyle, Spotless, SpotBugs, Javadoc, and 
API checks pass. The PR is open and awaiting review.

> Headers store adapters bypass the `WrappedStateStore` chain
> -----------------------------------------------------------
>
>                 Key: KAFKA-20875
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20875
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 4.4.0, 4.3.2
>            Reporter: Alan Lau
>            Assignee: Alan Lau
>            Priority: Blocker
>
> {{PlainToHeadersWindowStoreAdapter}} and 
> {{TimestampedToHeadersWindowStoreAdapter}} wrap a store without participating 
> in {{{}WrappedStateStore{}}}, making the wrapped store invisible to every 
> chain.
> Both adapters hold their delegate in a private field and declare only 
> {{{}implements WindowStore<Bytes, byte[]{}}}. {{{}WrappedStateStore{}}}'s 
> helpers all terminate on a non-WrappedStateStore:
> {code:java}
> public static boolean isTimestamped(final StateStore stateStore) {
>     if (stateStore instanceof TimestampedBytesStore) return true;
>     else if (stateStore instanceof WrappedStateStore) return 
> isTimestamped(wrapped());
>     else return false;
> }{code}
> So {{{}isTimestamped{}}}, {{{}isVersioned{}}}, {{isHeadersAware}} and 
> {{findInner}} all return {{false/null}} for anything behind these adapters, 
> as do the ~8 other call sites that walk the chain 
> (`ProcessorStateManager:148`, `StateManagerUtil:87`, `StoreQueryUtils:442`, 
> `TimestampedWindowStoreBuilder:107`, …).
>  



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

Reply via email to