public void updateContext()

in core/src/main/java/org/apache/ignite/activestore/impl/subscriber/lead/LeadPlanner.java [225:271]


    public void updateContext(long loadedLastDenseCommitted, LongList loadedSparseCommitted) {
        long lastDenseCommitted = MergeHelper.mergeWithDenseCompaction(loadedSparseCommitted, state.sparseCommitted(),
            loadedLastDenseCommitted);
        state.setLastDenseCommitted(lastDenseCommitted);
        filterCommitted(state.txInfos());
        filterCommitted(state.inProgressTransactions());

        // Update last dense read.
        long next = state.lastDenseCommitted() + 1;
        ListIterator<TxInfo> txInfoIt = state.txInfoListIterator();

        for (LongIterator sparseIt = state.sparseCommitted().longIterator(); sparseIt.hasNext(); ) {
            long sparseId = sparseIt.next();

            if (sparseId > next) {
                while (txInfoIt.hasNext()) {
                    long id = txInfoIt.next().id();

                    if (next == id) {
                        next++;
                    }
                    else if (id > next) {
                        txInfoIt.previous();
                        break;
                    }
                }
            }
            if (sparseId == next) {
                next++;
            }
            else if (sparseId > next) {
                break;
            }
        }
        while (txInfoIt.hasNext()) {
            long id = txInfoIt.next().id();

            if (next == id) {
                next++;
            }
            else if (id > next) {
                txInfoIt.previous();
                break;
            }
        }
        state.setLastDenseRead(next - 1);
    }