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
}
						}
					}
				}
			}
			
			
			if (action.isEnabled()) {
				boolean trace = Policy.TRACE_ACTIONS;
				
				long ms = System.currentTimeMillis();
				if (trace)
					System.out.println("Running action: " + action.getText()); 
				action.runWithEvent(e);
				if (trace)
					System.out.println((System.currentTimeMillis() - ms) + " ms to run action: " + action.getText()); 
			}
		}
	}
	/* (non-Javadoc)
	 * Method declared on Object.
	 */
	public int hashCode() {
		return action.hashCode();
	}
	/**
	 * Returns whether the given action has any images.
	 * 
	 * @param actionToCheck the action
	 * @return <code>true</code> if the action has any images, <code>false</code> if not