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
/**
             * The reference queue to check; will not be <code>null</code>.
             */
            private final ReferenceQueue referenceQueue;
            /**
             * The map from which to remove values. This value will not be
             * <code>null</code>.
             */
            private final Map map;
            /**
             * Whether this thread should be running.
             */
            private boolean running = true;
            /**
             * Constructs a new instance of <code>ReferenceCleanerThread</code>.
             * 
             * @param referenceQueue
             *            The reference queue to check for garbage; mmmmm....
             *            garbage. This value must not be <code>null</code>.
             * @param map
             *            The map to check for values; must not be