Hello!   

The `CheckpointedFunction` interface was introduced to provide user functions 
with a context for partitioned state storage.   This works for user functions 
that are provided directly to the operator (assuming it extends from 
`AbstractUdfStreamOperator`).   However, I see that some operators wrap the 
user function in an internal function (e.g. `WrappingFunction`,  
`InternalWindowFunction`).   This defeats the callbacks on 
`CheckpointedFunction` because those wrappers don’t implement 
`CheckpointedFunction`.  Is this by design or a bug?

For example, the user function passed to `WindowedStream::apply` will get 
callbacks for `RichFunction` but not for `CheckpointedFunction`.

To fix it, the wrapper would assumedly implement `CheckpointedFunction` and 
contain logic similar to that found in `AbstractUdfStreamOperator` (including 
the handling of `ListCheckpointed`).

Thanks
Eron

Reply via email to