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
/**
         * This class spoofs a few method calls by passing them through to the
         * underlying weakly referred object (if available). This allows the
         * weak reference to be used as a key in a <code>HashMap</code>.
         * 
         * @since 3.0
         */
        private static final class HashableWeakReference extends WeakReference {
            /**
             * Constructs a new instance of <code>HashableWeakReference</code>.
             * 
             * @param referent
             *            The object to refer to; may be <code>null</code>.
             * @param referenceQueue
             *            The reference queue to use; should not be
             *            <code>null</code>.
             */
            private HashableWeakReference(final Object referent,
                    final ReferenceQueue referenceQueue) {
                super(referent, referenceQueue);
            }