lh0156 opened a new pull request, #23027:
URL: https://github.com/apache/kafka/pull/23027

   ### Problem
   
   The plain and timestamped window-store adapters used for header-aware 
compatibility directly implemented `WindowStore` and kept their delegates in 
private fields. As a result, the adapters terminated the standard 
`WrappedStateStore` chain: `wrapped()`, `findInner()`, and recursive store-type 
inspection could not see the underlying store.
   
   ### Solution
   
   - Make both window-store adapters extend `WrappedStateStore`.
   - Route existing delegation through the inherited `wrapped()` contract 
without changing value-format conversions.
   - Update time-ordered-store detection to use `wrapped()` instead of 
adapter-specific delegate state.
   - Add regression tests for direct wrapping, inner-store discovery, and 
timestamped-store detection.
   
   ### Testing
   
   - RED: the new chain tests failed against the baseline at test compilation 
because neither adapter exposed `wrapped()` or `findInner()`.
   - GREEN: both adapter test classes pass, including all existing query and 
execution-info tests.
   - `./gradlew :streams:test --tests 
org.apache.kafka.streams.state.internals.PlainToHeadersWindowStoreAdapterTest 
--tests 
org.apache.kafka.streams.state.internals.TimestampedToHeadersWindowStoreAdapterTest
 --no-build-cache --console=plain`
   - `./gradlew :streams:test --tests 
org.apache.kafka.streams.state.internals.TimestampedWindowStoreWithHeadersBuilderTest
 --tests 
org.apache.kafka.streams.state.internals.TimeOrderedCachingPersistentWindowStoreTest
 --no-build-cache --console=plain`
   - `:streams:check` completed 9,298 tests with one timeout in 
`CustomStickyTaskAssignorTest.largeAssignmentShouldTerminateWithinAcceptableTime`
 under the `balance_subtopology` strategy; the parameterized test passed for 
all three strategies when rerun in isolation. Checkstyle, Spotless, SpotBugs, 
Javadoc, and the public API checker passed.
   
   Fixes KAFKA-20875


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to