[ https://issues.apache.org/jira/browse/FLINK-9524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fabian Hueske closed FLINK-9524. -------------------------------- Resolution: Fixed Fix Version/s: 1.5.1 1.4.3 1.6.0 Fixed in 1.6.0 with eb525b7f889600fa4f4dbbdbee161848e5d570dd Fixed in 1.5.1 with d8ad69fc88eea46648a9fcd686df613bb245e7db Fixed in 1.4.3 with 3ff508f7ed15b2b890249efba346c0fa1bdf9b74 > NPE from ProcTimeBoundedRangeOver.scala > --------------------------------------- > > Key: FLINK-9524 > URL: https://issues.apache.org/jira/browse/FLINK-9524 > Project: Flink > Issue Type: Bug > Components: Table API & SQL > Affects Versions: 1.5.0 > Reporter: yan zhou > Assignee: yan zhou > Priority: Major > Labels: pull-request-available > Fix For: 1.6.0, 1.4.3, 1.5.1 > > Attachments: npe_from_ProcTimeBoundedRangeOver.txt > > > The class _ProcTimeBoundedRangeOver_ would throws NPE if _minRetentionTime_ > and _maxRetentionTime_ are set to greater then 1. > Please see [^npe_from_ProcTimeBoundedRangeOver.txt] for the detail of > exception. Below is a short description of the cause: > * When the first event for a key arrives, the cleanup time is registered > with _timerservice_ and recorded in _cleanupTimeState_. If the second event > with same key arrives before the cleanup time, the value in > _cleanupTimeState_ is updated and a new timer is registered to > _timerService_. So now we have two registered timers for cleanup. One is > registered because of the first event, the other for the second event. > * However, when _onTimer_ method is fired for the first cleanup timer, the > _cleanupTimeStates_ value has already been updated to second cleanup time. So > it will bypass the _needToCleanupState_ check, and yet run through the > remained code of _onTimer_ (which is intended to update the accumulator and > emit output) and cause NPE. > _RowTimeBoundedRangeOver_ has very similar logic with > _ProcTimeBoundedRangeOver. But_ It won't cause NPE by the same reason. To > avoid the exception, it simply add a null check before running the logic for > updating accumulator. > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)