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)