Bug 210946 [Workbench] Unproper error handling in class ModalContext
Build ID: M20070921-1145 Steps To Reproduce: A caught Throwable is not written to the Eclipse log. It is just written on the console. org.eclipse.jface.operation.ModalContext public void block() { if (display == Display.getCurrent()) { while (continueEventDispatching) { // Run the event loop. Handle any uncaught exceptions caused // by UI events. try { if (!display.readAndDispatch()) { display.sleep(); } } // ThreadDeath is a normal error when the thread is dying. We must // propagate it in order for it to properly terminate. catch (ThreadDeath e) { throw (e); } // For all other exceptions, log the problem. catch (Throwable e) { System.err.println("Unhandled event loop exception during blocked modal context."); //$NON-NLS-1$ e.printStackTrace(); } More information:
bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java
* The progress monitor used for progress and cancelation.
		 */
		private IProgressMonitor progressMonitor;
		/**
		 * The display used for event dispatching.
		 */
		private Display display;
		/**
		 * Indicates whether to continue event queue dispatching.
		 */
		private volatile boolean continueEventDispatching = true;
		/**
		 * The thread that forked this modal context thread.
		 * 
		 * @since 3.1
		 */
		private Thread callingThread;
		/**
		 * Creates a new modal context.
		 * 
		 * @param operation
		 *            the runnable to run
		 * @param monitor
		 *            the progress monitor to use to display progress and
		 *            receive requests for cancelation
		 * @param display
		 *            the display to be used to read and dispatch events
		 */
		private ModalContextThread(IRunnableWithProgress operation,
				IProgressMonitor monitor, Display display) {