@Override
	public void save(TaskMonitor monitor) throws IOException, CancelledException {
		DomainObjectAdapter dobj = projectData.getOpenedDomainObject(getPathname());
		if (dobj == null) {
			throw new AssertException("Cannot save, domainObj not open");
		}
		if (fileSystem.isReadOnly()) {
			throw new ReadOnlyException("Cannot save to read-only project");
		}
		if (isReadOnly()) {
			throw new ReadOnlyException("Cannot save to read-only file");
		}
		dobj.save(null, monitor != null ? monitor : TaskMonitor.DUMMY);
	}
Reassign a new file-ID to resolve file-ID conflict.
Conflicts can occur as a result of a cancelled check-out.
@throws IOException if an IO error occurs
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/GhidraFile.java