private void updateCachedData() {
        final int pageStart = getPageStart();
        final int expectedLastIndex = Math.max(0, Math.min(getPageSize(), getRowCount() - pageStart));
        int lastIndex = getVisibleItemCount() - 1;
        while (lastIndex >= expectedLastIndex) {
            ensurePendingState().rowData.remove(lastIndex);
            lastIndex--;
        }
    }
Ensure that the cached data is consistent with the data size.
stroom-core-client-widget/src/main/java/com/google/gwt/user/cellview/client/HasDataPresenter.java