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
/**
         * A map of image descriptors to the corresponding greyed images. The
         * image descriptors are actually weak references to image descriptors.
         * As the weak references become suitable for collection, the
         * corresponding images (i.e., native resources) will be disposed. This
         * value may be empty, but it is never <code>null</code>.
         */
        private final Map greyMap = new HashMap();
        /**
         * A queue of references waiting to be garbage collected. This value is
         * never <code>null</code>. This is the queue for
         * <code>greyMap</code>.
         */
        private final ReferenceQueue greyReferenceQueue = new ReferenceQueue();
        
        /**
         * The thread responsible for cleaning out images that are no longer
         * needed.
         */
        private final ReferenceCleanerThread imageCleaner;
        /**
         * A map of image descriptors to the corresponding loaded images. The
         * image descriptors are actually weak references to image descriptors.
         * As the weak references become suitable for collection, the
         * corresponding images (i.e., native resources) will be disposed. This
         * value may be empty, but it is never <code>null</code>.
         */
        private final Map imageMap = new HashMap();
        /**
         * A queue of references waiting to be garbage collected. This value is