Bug 62401 [Actions] ReferenceCleanerThread in ActionContributionItem cause application can not exit normally.
When the standalone application exit, the display disposed, will call ReferenceCleanerThread.stopCleaning() method, it simply set the running field to false, but "reference = referenceQueue.remove();" in line 196 still blocking. And you must call System.exit() explicitlly to terminate the currently running Java Virtual Machine. so I think it is a bug. My env: XP home edition, jdk 1.4.2_04, and eclipse-SDK-I20040514-win32 Regards, Eric
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
/**
	 * Mode bit: Show text on tool items, even if an image is present.
	 * If this mode bit is not set, text is only shown on tool items if there is 
	 * no image present.
	 */
	public static int MODE_FORCE_TEXT = 1;
	/**
	 * This is the lower bound of the continuous range of accelerator values
	 * that should be handled specially on GTK.  This is to circumnavigate the
	 * special input mode in some cases.
	 */
	private static final int LOWER_GTK_ACCEL_BOUND = SWT.MOD1 | SWT.MOD2 | 'A';
	/**
	 * This is the lower bound of the continuous range of accelerator values
	 * that should be handled specially on GTK.  This is to circumnavigate the
	 * special input mode in some cases.
	 */
	private static final int UPPER_GTK_ACCEL_BOUND = SWT.MOD1 | SWT.MOD2 | 'F';
	
	private static final String ellipsis = "..."; 
	
	/**
     * A weakly referenced cache of image descriptors to image instances. This
     * is used to hold images in memory for action contribution items, while
     * they are defined. When the image descriptor becomes weakly referred to,
     * the corresponding image will be disposed.
     */
    private static final class ImageCache {