private void openUnversionedFile(TaskMonitor monitor) {
		monitor.setMessage("Opening " + domainFile.getName());
		String contentType = null;
		try {
			final boolean recoverFile = isRecoveryOK(domainFile);
			contentType = domainFile.getContentType();
			try {
				dtArchive =
					(DataTypeArchive) domainFile.getDomainObject(this, false, recoverFile, monitor);
			}
			catch (VersionException e) {
				if (VersionExceptionHandler.isUpgradeOK(null, domainFile, "Open", e)) {
					dtArchive = (DataTypeArchive) domainFile.getDomainObject(this, true,
						recoverFile, monitor);
				}
			}
		}
		catch (VersionException e) {
			VersionExceptionHandler.showVersionError(null, domainFile.getName(), contentType,
				"Open", e);
		}
		catch (CancelledException e) {
			// we don't care, the task has been canceled
		}
		catch (Exception e) {
			if (domainFile.isInWritableProject() && (e instanceof IOException)) {
				RepositoryAdapter repo = domainFile.getParent().getProjectData().getRepository();
				ClientUtil.handleException(repo, e, "Open File", null);
			}
			else {
				Msg.showError(this, null, "Error Opening " + domainFile.getName(),
					"Opening data type archive failed.\n" + e.getMessage());
			}
		}
	}
Open archive in an immutable fashion.  Unlike ProgramDB, we do not want to 
allow upgrade or modification of a read-only archve (e.g., not-checked-out).
@param monitor task monitor
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/OpenDomainFileTask.java