private ResourceFile[] correspondingBinaries(ResourceFile source) {
		String parentPath = source.getParentFile().getAbsolutePath();
		int sourceDirLength = getSourceDirectory().getAbsolutePath().length();
		String relativePath = parentPath.substring(sourceDirLength);
		if (relativePath.startsWith(File.separator)) {
			relativePath = relativePath.substring(1);
		}

		String javaFileName = source.getName();
		String className = javaFileName.substring(0, javaFileName.length() - 5); // drop ".java"
		ResourceFile binarySubdir = new ResourceFile(binaryDir.resolve(relativePath).toFile());
		if (!binarySubdir.exists() || !binarySubdir.isDirectory()) {
			return new ResourceFile[] {};
		}

		return binarySubdir.listFiles(f -> {
			String fileName = f.getName();
			return fileName.startsWith(className) &&
				IS_CLASS_FILE.test(fileName.substring(className.length()));
		});
	}
If a file that previously built without errors is now missing some requirements, rebuild it 
to capture errors (if any).
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/GhidraSourceBundle.java