@GuardedBy("lock")
private CompletedCheckpoint finalizeInternal(
@Nullable StreamStateHandle externalMetadata,
@Nullable String externalPointer) {
assert(Thread.holdsLock(lock));
CompletedCheckpoint completed = new CompletedCheckpoint(
jobId,
checkpointId,
checkpointTimestamp,
System.currentTimeMillis(),
operatorStates,
masterState,
props,
externalMetadata,
externalPointer);
onCompletionPromise.complete(completed);
PendingCheckpointStats statsCallback = this.statsCallback;
if (statsCallback != null) {
CompletedCheckpointStats.DiscardCallback discardCallback =
statsCallback.reportCompletedCheckpoint(externalPointer);
completed.setDiscardCallback(discardCallback);
}
dispose(false);
return completed;
}