Github user dyanarose commented on the issue: https://github.com/apache/flink/pull/5295 I'm not the biggest fan of unchecked casts, but testing this in our POC environment casting the existing EventTimeTrigger to a typed Trigger<T, W> is working. So if the unchecked cast is acceptable, that would get rid of all changes required to Event/ProcessingTimeTrigger On your second point. (sorry if I mis-attribute this based on github profile name) I believe you had mentioned breaking this out into new classes when I first brought this up on the mailing list https://lists.apache.org/thread.html/6ceb094460bca8e9731e9e1dc0bb479f407f769458bff30c412adf78@%3Cdev.flink.apache.org%3E Now that you see it in action, do you feel it would be better off as an addition to the existing session window classes? The way I see it is, if I put withGapExtractor() on the existing classes, without adding type information to them, then the extract() method on SessionWindowGapExtractor will need to have the signature of extract(Object input) leaving the implementer to have to cast to the input type. I have to admit it feels strange to me that the Window assigners all drop input type information. But that would mean that these new typed assigners would be the odd ones out.
---