my-flink-project
my-flink-project copied to clipboard
在HotItems.java中当点击数量总数少于topSize时,会报数据越界错误
在HotItems.java中当点击数量总数少于topSize时,会报数据越界错误 在模拟数据中,当一段时间内的点击数量只有1条,设置的topSize为3时 ItemViewCount currentItem = allItems.get(i); 会数组越界
Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.app.java.myflink.HotItems$TopNHotItems.onTimer(HotItems.java:140)
at org.apache.flink.streaming.api.operators.KeyedProcessOperator.invokeUserFunction(KeyedProcessOperator.java:94)
at org.apache.flink.streaming.api.operators.KeyedProcessOperator.onEventTime(KeyedProcessOperator.java:72)
at org.apache.flink.streaming.api.operators.InternalTimerServiceImpl.advanceWatermark(InternalTimerServiceImpl.java:251)
at org.apache.flink.streaming.api.operators.InternalTimeServiceManager.advanceWatermark(InternalTimeServiceManager.java:128)
at org.apache.flink.streaming.api.operators.AbstractStreamOperator.processWatermark(AbstractStreamOperator.java:746)
at org.apache.flink.streaming.runtime.io.StreamInputProcessor$ForwardingValveOutputHandler.handleWatermark(StreamInputProcessor.java:262)
... 7 more
我尝试做了如下修改
for (int i=0; i<allItems.size() && i < topSize; i++)
多谢指出~