Tzu-Li (Gordon) Tai created FLINK-6772:
------------------------------------------
Summary: Incorrect ordering of matched state events in Flink CEP
Key: FLINK-6772
URL:
https://issues.apache.org/jira/browse/FLINK-6772 Project: Flink
Issue Type: Bug
Components: CEP
Reporter: Tzu-Li (Gordon) Tai
I've stumbled across an unexepected ordering of the matched state events.
Pattern:
{code}
Pattern<String, ?> pattern = Pattern
.<String>begin("start")
.where(new IterativeCondition<String>() {
@Override
public boolean filter(String s, Context<String> context) throws Exception {
return s.startsWith("a-");
}
}).times(4).allowCombinations()
.followedByAny("end")
.where(new IterativeCondition<String>() {
public boolean filter(String s, Context<String> context) throws Exception {
return s.startsWith("b-");
}
}).times(3).consecutive();
{code}
Input event sequence:
a-1, a-2, a-3, a-4, b-1, b-2, b-3
On b-3 a matched pattern would be triggered.
Now, in the {{Map<String, List<IN>>}} map passed via {{select}} in {{PatternSelectFunction}}, the list for the "end" state is:
b-3, b-1, b-2.
Based on the timestamp of the events (simply using processing time), the correct order should be b-1, b-2, b-3.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)