Bug 169879 [Dialogs] Runtime exception in DialogTray.createContents() creates zombie dialog
3.3M4 1) Create a DialogTray that will throw an NPE in its createContents() method 2) Create a TrayDialog and set its tray to the above tray 3) attempt to close the dialog You will get NPEs in closeTray() that result in a Dialog that cannot be closed. This is especially bad if it's modal.
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
tray = null;
		leftSeparator.dispose();
		leftSeparator = null;
		rightSeparator.dispose();
		rightSeparator = null;
		sash.dispose();
		sash = null;
		Shell shell = getShell();
		Rectangle bounds = shell.getBounds();
		shell.setBounds(bounds.x + ((getDefaultOrientation() == SWT.RIGHT_TO_LEFT) ? trayWidth : 0), bounds.y, bounds.width - trayWidth, bounds.height);
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.jface.dialogs.Dialog#close()
	 */
	public boolean close() {
		/*
		 * Close the tray to ensure that those dialogs that remember their
		 * size do not store the tray size.
		 */
		if (getTray() != null) {
			closeTray();
		}
		return super.close();
	}
	
    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite)
     */
	protected Control createButtonBar(Composite parent) {