protected ReaderThread<T> createReaderThread(ExceptionProxy exceptionProxy, PulsarTopicState state) {
        return new ReaderThread<>(
                this,
                state,
                clientConf,
                readerConf,
                deserializer,
                pollTimeoutMs,
                exceptionProxy,
                failOnDataLoss,
                useEarliestWhenDataLoss,
                excludeStartMessageIds.contains(state.getTopicRange()), subscriptionName);
    }
Takes a snapshot of the partition offsets.

<p>Important: This method must be called under the checkpoint lock.

@return A map from partition to current offset.
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/pulsar/src/main/java/org/apache/inlong/sort/pulsar/internal/PulsarFetcher.java