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).setImage(image);
				return image != null;
			} else {
				Image image = cache.getImage(action.getImageDescriptor());
				Image hoverImage = cache.getImage(action.getHoverImageDescriptor());
				Image disabledImage = cache.getImage(action.getDisabledImageDescriptor());
				
				
				if (image == null && hoverImage != null) {
					image = cache.getGrayImage(action.getHoverImageDescriptor());
				} else {
					
					
					if (hoverImage == null && image != null) {
						hoverImage = image;
						image = cache.getGrayImage(action.getImageDescriptor());
					}
				}
				
				if (hoverImage == null && image == null && forceImage) {
					image = cache.getMissingImage();
				}
				
				if (disabledImage != null) {