Bug 162916 [Undo] [IDE] Invalid thread access from new file wizard
Build: I20061031-0656 1) Create a simple project 2) In the file system, add file "a.txt" to the project 3) Back in Eclipse, do File > New > File, select the project and enter a name of "a.txt". An internal error occurs because it is trying to open an error dialog from a modal context thread: org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:3407) at org.eclipse.swt.SWT.error(SWT.java:3330) at org.eclipse.swt.SWT.error(SWT.java:3301) at org.eclipse.swt.widgets.Widget.error(Widget.java:432) at org.eclipse.swt.widgets.Shell.<init>(Shell.java:271) at org.eclipse.swt.widgets.Shell.<init>(Shell.java:357) at org.eclipse.jface.window.Window.createShell(Window.java:482) at org.eclipse.jface.window.Window.create(Window.java:425) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1111) at org.eclipse.jface.window.Window.open(Window.java:785) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:296) at org.eclipse.jface.dialogs.ErrorDialog.openError(ErrorDialog.java:360) at org.eclipse.jface.dialogs.ErrorDialog.openError(ErrorDialog.java:325) at org.eclipse.ui.dialogs.WizardNewFileCreationPage$4.run(WizardNewFileCreationPage.java:343) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113)
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
linkedResourceGroupHeight = groupSize.y;
            }
            shell.setSize(shellSize.x, shellSize.y + linkedResourceGroupHeight);
            composite.layout();
            advancedButton.setText(IDEWorkbenchMessages.hideAdvanced);
        }
    }
    /**
     * The <code>WizardNewFileCreationPage</code> implementation of this 
     * <code>Listener</code> method handles all events and enablements for controls
     * on this page. Subclasses may extend.
     */
    public void handleEvent(Event event) {
        setPageComplete(validatePage());
    }
    /**
     * Sets the initial contents of the container name entry field, based upon
     * either a previously-specified initial value or the ability to determine
     * such a value.
     */
    protected void initialPopulateContainerNameField() {
        if (initialContainerFullPath != null) {
			resourceGroup.setContainerFullPath(initialContainerFullPath);
		} else {
            Iterator it = currentSelection.iterator();
            if (it.hasNext()) {
                Object object = it.next();
                IResource selectedResource = null;
                if (object instanceof IResource) {
                    selectedResource = (IResource) object;