void open() throws IOException {
		if (versionFile != null) {
			return;
		}
		if (file == null) {
			throw new IOException("Version file has been aborted");	
		}	
		readOnly = true;
		versionFile = new LocalBufferFile(file, true);
		bufferSize = versionFile.getBufferSize();
		initialBufCount = versionFile.getIndexCount();
		
		boolean goodFile = false;
		
		try {
			if (versionFile.getParameter(MAGIC_NUMBER_PARM) == MAGIC_NUMBER) {
				goodFile = true;
			}
		} catch (NoSuchElementException e1) {
		}
		if (!goodFile) {
			throw new IOException("Corrupt version file");
		}
		
		long mod = file.lastModified();
		if (mod != lastModified) {
			boolean success = false;
			try {
				parseFile();
				success = true;
			}
			finally {
				if (!success) {
					try {
						close();
					} catch (IOException e) {}		
				}
			}
			lastModified = mod;	
		}
	}
Reopen version file as read-only
@throws IOException
Ghidra/Framework/DB/src/main/java/db/buffers/VersionFile.java