private void refreshArchive(boolean forUpdate) throws LockException, IOException {

		// re-read archive file if it isn't null
		if (archiveFile != null) {
			FileDataTypeManager newManager =
				FileDataTypeManager.openFileArchive(archiveFile, forUpdate);

			FileDataTypeManager oldManager = fileDataTypeManager;
			oldManager.removeDataTypeManagerListener(categoryListener);
			oldManager.close();

			fileDataTypeManager = newManager;
			fileDataTypeManager.addDataTypeManagerListener(categoryListener);

			archiveManager.dataTypeManagerChanged(this, oldManager, newManager);
		}
	}
Re-read the archive file.
@param forUpdate true indicates to open the database for update, false for read-only.
@throws LockException if the open if for update and a lock could not
be obtained
@throws IOException if the archive file can't be opened
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/FileArchive.java