Hi Flink Community,

We use Flink SQL to calculate some metrics. In our SQL, we use window 
aggregation and we want to trigger the result earlier with different trigger 
strategies. 
So we get the window operators in the transformations and set the triggers by 
reflection.
It worked in Flink 1.7. But when we upgrade to Flink SQL 1.10+, we find the 
'getOperator' method of the OneInputTransformation has been changed from


public OneInputStreamOperator<IN, OUT> getOperator() {
    return operator;
}




to


public OneInputStreamOperator<IN, OUT> getOperator() {
    return (OneInputStreamOperator<IN, OUT>) ((SimpleOperatorFactory) 
operatorFactory).getOperator();

}



In one of our OneInputTransformations, the operatorFactory is 
AsyncWaitOperatorFactory. When we call the getOperator method, it will throw


org.apache.flink.streaming.api.operators.async.AsyncWaitOperatorFactory cannot 
be cast to org.apache.flink.streaming.api.operators.SimpleOperatorFactory


Can we know why only cast the operatorFactory to SimpleOperatorFactory? Does it 
make sense that we should check the type of operatorFactory when we call this 
method?



--

Thanks,
Hongjian Peng

Reply via email to