Alan Lau created KAFKA-20875:
--------------------------------

             Summary: Headers store adapters bypass the `WrappedStateStore` 
chain
                 Key: KAFKA-20875
                 URL: https://issues.apache.org/jira/browse/KAFKA-20875
             Project: Kafka
          Issue Type: Bug
            Reporter: Alan Lau
            Assignee: Alan Lau


{{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