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)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](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]