Bug 84070 IAE in new Java Project wizard when giving name of folder without a linked folder location
I20050126-0800 + ZRH-plugins from 20050128 - New workspace, New Java Project wizard, use project as source folder - Click Next, click toolbar icon "Link additional Source to Project" - Press tab and enter a "Folder name" without specifying a "Linked folder location" On each keystroke, the log gets one of these: !ENTRY org.eclipse.ui 4 0 2005-01-31 19:10:31.90 !MESSAGE Path must include project and resource name: /Proj !STACK 0 java.lang.IllegalArgumentException: Path must include project and resource name: /Proj at org.eclipse.core.internal.utils.Assert.isLegal(Assert.java:60) at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:1541) at org.eclipse.core.internal.resources.Container.getFolder(Container.java:136) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog.createFolderHandle(LinkFolderDialog.java:428) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog.access$3(LinkFolderDialog.java:425) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog$Validator.validateLinkedResource(LinkFolderDialog.java:299) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog$Validator.update(LinkFolderDialog.java:218) at java.util.Observable.notifyObservers(Observable.java:142) at java.util.Observable.notifyObservers(Observable.java:98) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog$FolderNameField.fireEvent(LinkFolderDialog.java:102) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.LinkFolderDialog$FolderNameField.dialogFieldChanged(LinkFolderDialog.java:106) at org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField.dialogFieldChanged(DialogField.java:70) at org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField.doModifyText(StringDialogField.java:130) at org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField.access$0(StringDialogField.java:126) at org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField$1.modifyText(StringDialogField.java:108) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:187) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:866) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:2019) at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:3150) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3027) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3449) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1509) at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:127) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3109) at org.eclipse.swt.widgets.Text.windowProc(Text.java:1742) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3449) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1585) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2513) at org.eclipse.jface.window.Window.runEventLoop(Window.java:718) at org.eclipse.jface.window.Window.open(Window.java:696) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.ClasspathModifierQueries$10.run(ClasspathModifierQueries.java:622) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:147) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28) at org.eclipse.swt.widgets.Display.syncExec(Display.java:3202) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.ClasspathModifierQueries$9.doQuery(ClasspathModifierQueries.java:617) at org.eclipse.jdt.internal.corext.buildpath.ClasspathModifier.createLinkedSourceFolder(ClasspathModifier.java:104) at org.eclipse.jdt.internal.corext.buildpath.LinkedSourceFolderOperation.run(LinkedSourceFolderOperation.java:60) at org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage.ClasspathModifierAction.run(ClasspathModifierAction.java:56) at org.eclipse.jface.action.Action.runWithEvent(Action.java:989) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:460) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2877) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2515) at org.eclipse.jface.window.Window.runEventLoop(Window.java:718) at org.eclipse.jface.window.Window.open(Window.java:696) at org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:117) at org.eclipse.jface.action.Action.runWithEvent(Action.java:989) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:419) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2877) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2515) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1584) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1550) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:288) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:225) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:274) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.basicRun(Main.java:255) at org.eclipse.core.launcher.Main.run(Main.java:811) at org.eclipse.core.launcher.Main.main(Main.java:795)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/newsourcepage/LinkFolderDialog.java
* @param linkTargetName name of the link target folder. may be null.
     * @return IFolder the new folder
     */
    private IFolder createNewFolder(final String folderName, final String linkTargetName) {
        final IFolder folderHandle = createFolderHandle(folderName);
        
        WorkspaceModifyOperation operation = new WorkspaceModifyOperation() {
            public void execute(IProgressMonitor monitor) throws CoreException {
                try {
                    monitor.beginTask(NewWizardMessages
                            .getString("NewFolderDialog.progress"), 2000); 
                    if (monitor.isCanceled())
                        throw new OperationCanceledException();
                    
                        
                    folderHandle.createLink(new Path(fDependenciesGroup.getLinkTarget()), IResource.ALLOW_MISSING_LOCAL, monitor);
                    
                    if (monitor.isCanceled())
                        throw new OperationCanceledException();
                } catch (StringIndexOutOfBoundsException e) {
                    e.printStackTrace();
                }
                finally {
                    monitor.done();
                }
            }
        };
        
        try {
            new ProgressMonitorDialog(getShell())