kennknowles opened a new pull request, #40024:
URL: https://github.com/apache/beam/pull/40024

   The three argument providers each carry their own near-identical copy of the 
output-receiver plumbing, and the @OnTimer and @OnWindowExpiration copies had 
drifted from the working @ProcessElement one:
   
   - OnTimerContext.outputWindowedValue(tag, ...) had an empty body, so tagged 
windowed output from @OnTimer was silently dropped.
   - OnTimerContext's tagged receivers passed no tag to outputWindowedValue, so 
output to a side tag went to the main output.
   - The @OnTimer row receivers built from WindowedValues.builder( 
currentElement) or called withValue() on a fresh builder. Neither works during 
timer processing: currentElement is only set while processing an element, and 
withValue() reads timestamp/window/pane off the builder it is called on. Both 
now seed from currentTimer, matching the @OnWindowExpiration equivalents.
   - OnWindowExpirationContext read currentElement.getValueKind() while 
currentElement was null. Window expiration emits new records, so this is 
ValueKind.INSERT.
   - OnWindowExpirationContext.timeDomain() returned currentTimeDomain, which 
processOnWindowExpiration never sets. TimeDomain is not an allowed 
@OnWindowExpiration parameter, so drop the override and let 
BaseArgumentProvider reject it.
   - outputWindowedValue(tag, ...) skipped the unknown-tag check its siblings 
perform, so a bad tag produced an NPE.
   - processTimer's finally did not clear causedByDrain, unlike 
processOnWindowExpiration. Not observable today since every entry point sets it 
before invoking user code, but the asymmetry is a trap.
   
   The two inner Context classes are renamed to TimerContext and 
WindowExpirationContext so the fields holding them can drop their raw types; 
the enclosing providers are generic in K, and errorprone's SameNameButDifferent 
rejects the bare Context name.
   
   **Please** add a meaningful description for your change here
   
   ------------------------
   
   Thank you for your contribution! Follow this checklist to help us 
incorporate your contribution quickly and easily:
   
    - [ ] Mention the appropriate issue in your description (for example: 
`addresses #123`), if applicable. This will automatically add a link to the 
pull request in the issue. If you would like the issue to automatically close 
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
    - [ ] Update `CHANGES.md` with noteworthy changes.
    - [ ] If this contribution is large, please file an Apache [Individual 
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   See the [Contributor Guide](https://beam.apache.org/contribute) for more 
tips on [how to make review process 
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
   
   To check the build health, please visit 
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
   
   GitHub Actions Tests Status (on master branch)
   
------------------------------------------------------------------------------------------------
   [![Build python source distribution and 
wheels](https://github.com/apache/beam/actions/workflows/build_wheels.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
   [![Python 
tests](https://github.com/apache/beam/actions/workflows/python_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Java 
tests](https://github.com/apache/beam/actions/workflows/java_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Go 
tests](https://github.com/apache/beam/actions/workflows/go_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
   
   See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more 
information about GitHub Actions CI or the [workflows 
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md) 
to see a list of phrases to trigger workflows.
   


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