Bug 9826 [Contributions] ActionContributionItem caches Images forever
ActionContributionItem has an image cache that caches images forever, and won't release them until the Display goes down. If an Action updates its Image, such as a background color or foreground color action, It's ImageDescriptor is constantly changing. ActionContributionItem$ImageCache creates an SWT Image for each descriptor. I verified this by constantly (a.k.a. programmatically) changing an actions ImageDescriptor, using only ImageData to build the descriptor. I quickly got a "no more handles" crash.
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
((ToolItem) widget).setDisabledImage(disabledImage);
				}
				((ToolItem) widget).setHotImage(hoverImage);
				((ToolItem) widget).setImage(image);
				return image != null;
			}
		} else if (widget instanceof Item || widget instanceof Button) {
			
			Image image = cache.getImage(action.getHoverImageDescriptor());
			if (image == null) {
				image = cache.getImage(action.getImageDescriptor());
			}
			
			if (image == null && forceImage) {
				image = cache.getMissingImage();
			}
			if (widget instanceof Item) {
				((Item) widget).setImage(image);
			} else if (widget instanceof Button) {
				((Button) widget).setImage(image);
			}
			return image != null;
		}
		return false;
	}
	/**
	 * Shorten the given text <code>t</code> so that its length doesn't