docs: @Override
  	public RecoverableWriter.ResumeRecoverable persist() throws IOException {
  		lock();
  		try {
  			fileStream.flush();
  			openNewPartIfNecessary(userDefinedMinPartSize);
  
  			// We do not stop writing to the current file, we merely limit the upload to the
  			// first n bytes of the current file
  
  			return upload.snapshotAndGetRecoverable(fileStream);
  		}
  		finally {
  			unlock();
  		}
  	}