Bug 90825 [LinkedResources] Typing external path for folder link can be very slow
3.1M6 (but it's been a problem for a long time, I just haven't reported it until now) Select an existing project. File > New > Folder. Type a folder name, click Advanced, click Link to folder in the file system. Click in the text field to enter the actual path. Start typing \\servername\path\to\whatever. As I type this path on my computer, the Eclipse UI sometimes becomes unresponsive. I may only see a new character come up every few seconds. Some keystrokes may be lost. Windows may draw a white bar across the top of the Eclipse window where the menu used to be. It seems to be trying to figure out if the file exists in the main GUI thread. This can take a while, especially if the server name has a typo or is not found. Often I'm trying to correct the path but am frustrated by this unresponsiveness. I managed to get a Ctrl+Break traceback of the main thread when it was sluggish: "main" prio=7 tid=0x00035d00 nid=0x5a8 runnable [0x0007e000..0x0007fc3c] at java.io.WinNTFileSystem.getBooleanAttributes(Native Method) at java.io.File.exists(Unknown Source) at org.eclipse.ui.internal.ide.dialogs.CreateLinkedResourceGroup.validat eLinkLocation(CreateLinkedResourceGroup.java:427) at org.eclipse.ui.dialogs.WizardNewFolderMainPage.validateLinkedResource (WizardNewFolderMainPage.java:438) at org.eclipse.ui.dialogs.WizardNewFolderMainPage.validatePage(WizardNew FolderMainPage.java:476) at org.eclipse.ui.dialogs.WizardNewFolderMainPage$2.handleEvent(WizardNe wFolderMainPage.java:149) at org.eclipse.ui.internal.ide.dialogs.CreateLinkedResourceGroup$2.modif yText(CreateLinkedResourceGroup.java:172) 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:3155) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3032) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3466) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1549) at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:127) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3114) at org.eclipse.swt.widgets.Text.windowProc(Text.java:1742) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3466) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1625) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2525) at org.eclipse.jface.window.Window.runEventLoop(Window.java:803) at org.eclipse.jface.window.Window.open(Window.java:781) at org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizard ShortcutAction.java:102) at org.eclipse.jface.action.Action.runWithEvent(Action.java:996) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:538) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContri butionItem.java:488) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionC ontributionItem.java:400) 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:2894) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2527) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1570) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1534) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:306) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:10 3) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct ivator.java:228) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:156) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:315) at org.eclipse.core.launcher.Main.basicRun(Main.java:268) at org.eclipse.core.launcher.Main.run(Main.java:942) at org.eclipse.core.launcher.Main.main(Main.java:926)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchMessages.java
public static String Workbench_file;
	public static String Workbench_new;
	public static String OpenWorkspaceAction_text;
	public static String OpenWorkspaceAction_toolTip;
	public static String OpenWorkspaceAction_errorTitle;
	public static String OpenWorkspaceAction_errorMessage;
	public static String CreateProjectAction_text;
	public static String CreateProjectAction_toolTip;
	public static String NewProjectAction_text;
	public static String NewProjectAction_toolTip;
	public static String NewExampleAction_text;
	public static String NewExampleAction_toolTip;
	public static String SaveAsDialog_title;
	public static String SaveAsDialog_message;
	public static String SaveAsDialog_text;
	public static String SaveAsDialog_fileLabel;
	public static String SaveAsDialog_file;
	public static String SaveAsDialog_overwriteQuestion;
	public static String Workbench_projectProperties;
	public static String Workbench_projectPropertiesToolTip;
	
	public static String Workbench_edit;
	public static String Workbench_addBookmark;
	public static String Workbench_addBookmarkToolTip;
	public static String Workbench_addTask;
	public static String Workbench_addTaskToolTip;
	
	public static String Workbench_navigate;