private boolean rollWriter() throws IOException {
 if (!isRunning()) {
  return false;
 }
 // Create new state-log
 if (!rollWriter(flushLogId + 1)) {
  LOG.warn("someone else has already created log {}", flushLogId);
  return false;
 }
 // We have the lease on the log,
 // but we should check if someone else has created new files
 if (getMaxLogId(getLogFiles()) > flushLogId) {
  LOG.warn("Someone else created new logs. Expected maxLogId < {}", flushLogId);
  logs.getLast().removeFile(this.walArchiveDir);
  return false;
 }
 // We have the lease on the log
 return true;
}

Source link