@Override
	public List<File> getListing(File directory, FileFilter filter) {
		// This clears the previously cached icons and avoids issues with modifying the map
		// while its being used by other methods by throwing away the instance and allocating
		// a new one.
		fileIconMap = new HashMap<>();

		if (directory == null) {
			return List.of();
		}
		File[] files = directory.listFiles(filter);
		return (files == null) ? List.of() : List.of(files);
	}
This is a cache of file icons, as returned from the OS's file icon service.
<p>
This cache is cleared each time a directory is requested (via 
{@link #getListing(File, FileFilter)} so that any changes to a file's icon are visible the 
next time the user hits refresh or navigates into a directory.
Ghidra/Framework/Docking/src/main/java/docking/widgets/filechooser/LocalFileChooserModel.java