Hi Nate, Hi Lasse, FYI, if you're still interested in the test harness for KeyFunctions with State V2, please note that the ticket [1] mentioned earlier has been resolved. Although it hasn't been officially released yet, you can try out the new harness methods. These methods can be found in the recent commit [2] on the master branch of Flink. [1] https://issues.apache.org/jira/browse/FLINK-37944 <https://issues.apache.org/jira/browse/FLINK-37944> [2] https://github.com/apache/flink/commit/a4958171f1d4a06c4031e4adf1b6ea25e072d005 <https://github.com/apache/flink/commit/a4958171f1d4a06c4031e4adf1b6ea25e072d005>
> 2025年6月18日 20:08,Lasse Nedergaard <lassenedergaardfl...@gmail.com> 写道: > > Hi > > So the conclusion is that it isn’t possible at all to test key functions > using the new DataStream api as it requires state V2 and test support is > missing. > > And it isn’t possible to declare and use state V1 together with the new > DataStream api as a temporary solution because you don’t have access to the > RuntimeContext. > > Right? > > Best regards > Lasse Nedergaard > > >> Den 11. jun. 2025 kl. 12.31 skrev Zakelly Lan <zakelly....@gmail.com>: >> >> >> Hi Nate, >> >> Glad to see you trying out the new API. >> >> Well, you're right that the `ProcessFunctionTestHarnesses` doesn't support >> the new state API yet. There are operators tailored for async state access, >> as well the operator test harness. But unfortunately we can't tell in >> advance if a `KeyedProcessFunction` is using the new state api or not, so >> current `forKeyedProcessFunction` still uses the operator without async >> state support. I've created a ticket[1] and will add a method for the case. >> >> [1] https://issues.apache.org/jira/browse/FLINK-37944 >> <https://issues.apache.org/jira/browse/FLINK-37944> >> >> >> Best, >> Zakelly >> >> On Wed, Jun 11, 2025 at 3:29 AM Nate Drake <ndr...@gmail.com >> <mailto:ndr...@gmail.com>> wrote: >> Hi, >> >> I'm attempting to unit test a KeyedProcessFunction that uses v2 Async State >> API using "ProcessFunctionTestHarnesses.forKeyedProcessFunction()". When I >> run my test it fails with: >> >> "Caused by: java.lang.IllegalStateException: Current operator integrates the >> async processing logic, thus only supports state v2 APIs. Please use >> StateDescriptor under 'org.apache.flink.runtime.state.v2'." >> >> I ran into a similar issue when attempting to run integration tests for the >> function even though I confirmed I'm using the .v2. packages and properly >> calling ".enableAsyncState()". After finding these two issues in Jira: >> >> https://issues.apache.org/jira/browse/FLINK-37621 >> <https://issues.apache.org/jira/browse/FLINK-37621> >> https://issues.apache.org/jira/browse/FLINK-37623 >> <https://issues.apache.org/jira/browse/FLINK-37623> >> >> I updated my project to use Flink 2.1.0-SNAPSHOT. That fixed my integration >> test, but my unit test is still failing. >> >> I'm not sure if I'm doing something wrong in my test or if maybe >> ProcessFunctionTestHarnesses doesn't support Async State yet. >> >> Any ideas? >> >> Thanks! >> >> Nate