private ImageIcon getDefaultIcon() {
		ImageIcon defaultIcon = ResourceManager.getDefaultIcon();
		if (this == defaultIcon) {
			// this can happen under just the right conditions when loading the default 
			// icon's bytes fails (probably due to disk or network issues)
			throw new IllegalStateException("Unexpected failure loading the default icon!");
		}
		return defaultIcon; // some sort of initialization has failed
	}
<code>LazyImageIcon</code> provides the ability to instantiate 
an ImageIcon with delayed loading.  In addition to delayed loading
it has the added benefit of allowing the use of static initialization
of ImageIcons without starting the Swing thread which can cause
problems when running headless.
Ghidra/Framework/Gui/src/main/java/resources/icons/LazyImageIcon.java