je-ik commented on pull request #14718: URL: https://github.com/apache/beam/pull/14718#issuecomment-832123747
There is no fireTimestamp until the timer is actually fired. The use case sets the timer in @ProcessElement. `Timer.withOutputTimestamp().offset(Duration.ZERO).setRelative()` should fire as soon as watermark moves, the fireTimestamp of the set timer is the current value of the input watermark (presumably, I didn't investigate the code, but it makes sense). Whether or not this call throws exception depends on the current value of the input watermark (or the base for relative event time timers, may it be anything). If you look at the test case I think there is nothing else left to do to make it succeed without changing the precondition check (or making input watermark available to the user somehow). Another note is that setting watermarkhold to time T + delta is semantically a no-op, the output watermark cannot be ahead of the input watermark, so that doesn't break anything. -- 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. For queries about this service, please contact Infrastructure at: [email protected]
