GitHub user bowenli86 opened a pull request: https://github.com/apache/flink/pull/5481
[FLINK-8560] Access to the current key in ProcessFunction after keyBy() ## What is the purpose of the change Currently, it is required to store the key of a keyBy() in the processElement method to have access to it in the OnTimerContext. This is not so good as you have to check in the processElement method for every element if the key is already stored and set it if it's not already set. A possible solution would adding OnTimerContext#getCurrentKey() or a similar method. Maybe having it in the open() method could maybe work as well. ## Brief change log added `OnTimerContext#getCurrentKey()` One limitation is that this impl of `getCurrentKey()` currently is not strongly typed. Declaring the key's type requires adding a new generic type to `ProcessFunction` - making the declaration from `ProcessFunction<IN, OUT>` to `ProcessFunction<IN, K, OUT>`. I'm worried it may break user's application, so I decide to make `getCurrentKey()` return an object. I'd like to discuss the feasibility of having strong type. ## Verifying this change This change is already covered by existing tests, such as *KeyedProcessOperatorTest*. ## Does this pull request potentially affect one of the following parts: none ## Documentation - Does this pull request introduce a new feature? (yes) - If yes, how is the feature documented? (docs / JavaDocs) You can merge this pull request into a Git repository by running: $ git pull https://github.com/bowenli86/flink FLINK-8560 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5481.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5481 ---- commit c5b8a4f27094b88c8641e2bdd30ea0ca65a7a4be Author: Bowen Li <bowenli86@...> Date: 2018-02-13T06:33:06Z [FLINK-8560] Access to the current key in ProcessFunction after keyBy() ---- ---