protected void visitDiscrepancies(DiscrepancyCallback discrepancy) {
		try {

			Deque<ResourceFile> stack = new ArrayDeque<>();
			ResourceFile sourceDir = getSourceDirectory();
			stack.add(sourceDir); // start in the source directory root
			while (!stack.isEmpty()) {
				ResourceFile sourceSubdir = stack.pop();
				String relPath = sourceSubdir.getAbsolutePath()
						.substring(sourceDir.getAbsolutePath().length());
				if (relPath.startsWith(File.separator)) {
					relPath = relPath.substring(1);
				}

				Path binarySubdir = binaryDir.resolve(relPath);
				ClassMapper mapper = new ClassMapper(binarySubdir);

				// for each source file, lookup class files by class name 
				for (ResourceFile sourceFile : sourceSubdir.listFiles()) {
					if (sourceFile.isDirectory()) {
						stack.push(sourceFile);
					}
					else {
						List<Path> classFiles = mapper.findAndRemove(sourceFile);
						if (classFiles != null) {
							discrepancy.found(sourceFile, classFiles);
						}
					}
				}
				// any remaining .class files are missing .java files
				if (mapper.hasExtraClassFiles()) {
					discrepancy.found(null, mapper.extraClassFiles());
				}
			}
		}
		catch (Throwable e) {
			Msg.error(this, "Exception while searching for file system discrepancies ", e);
		}
	}
visit discrepancies between java source and corresponding class files.

<pre>
walk resources to find:
 - source files that are newer than their corresponding binary
		reports (source file, list of corresponding binaries)
	- source files with no corresponding binary
		reports (source file, empty list)
 - binary files with no corresponding source
 	reports (null, list of binary files)
 
  for a source file source_root/com/blah/Blah.java
  
  all of the following binaries would correspond:
  	binary_root/com/blah/Blah.class
  	binary_root/com/blah/Blah$Inner.class
  	binary_root/com/blah/Blah$12.class
  	binary_root/com/blah/Blah$12.class
  	binary_root/com/blah/Blah$Inner$Innerer.class
  	...
</pre>
@param discrepancy the discrepancy callback
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/osgi/GhidraSourceBundle.java