@Override
	public void updateCheckout(FolderItem versionedFolderItem, boolean updateItem,
			TaskMonitor monitor) throws IOException, CancelledException {
		if (fileSystem.isReadOnly()) {
			throw new ReadOnlyException();
		}
		synchronized (fileSystem) {
			long checkoutId = getCheckoutId();
			boolean exclusive = isCheckedOutExclusive();
			if (isVersioned || checkoutId == DEFAULT_CHECKOUT_ID) {
				throw new IOException(getName() + " is not checked-out");
			}
			DatabaseItem verDbItem = (DatabaseItem) versionedFolderItem;
			//ItemCheckoutStatus coStatus = verDbItem.getCheckout(checkoutId);
			//int coVer = coStatus.getCheckoutVersion();

			int ver = verDbItem.getCurrentVersion();

			if (updateItem) {
				ManagedBufferFile verBf = verDbItem.open(ver);
				try {
					privateDb.updateCheckoutCopy(verBf, getCheckoutVersion(), monitor);
				}
				finally {
					try {
						verBf.close();
					}
					catch (IOException e) {
						// ignored
					}
				}
			}
			else {
				privateDb.updateCheckoutCopy();
			}
			setCheckout(checkoutId, exclusive, ver, getCurrentVersion());
		}
	}
@see ghidra.framework.store.FolderItem#canRecover()
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/LocalDatabaseItem.java