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 NewFolderDialog_nameLabel;
	public static String NewFolderDialog_alreadyExists;
	public static String NewFolderDialog_folderNameEmpty;
	public static String NewFolderDialog_progress;
	public static String NewFolderDialog_errorTitle;
	public static String NewFolderDialog_internalError;
	public static String CreateLinkedResourceGroup_linkFileButton;
	public static String CreateLinkedResourceGroup_linkFolderButton;
	public static String CreateLinkedResourceGroup_browseButton;
	public static String CreateLinkedResourceGroup_variablesButton;
	public static String CreateLinkedResourceGroup_resolvedPathLabel;
	public static String CreateLinkedResourceGroup_targetSelectionLabel;
	public static String CreateLinkedResourceGroup_linkTargetNotFile;
	public static String CreateLinkedResourceGroup_linkTargetNotFolder;
	public static String CreateLinkedResourceGroup_linkTargetNonExistent;
	public static String PathVariablesBlock_variablesLabel;
	public static String PathVariablesBlock_addVariableButton;
	public static String PathVariablesBlock_editVariableButton;
	public static String PathVariablesBlock_removeVariableButton;
	public static String PathVariableSelectionDialog_title;
	public static String PathVariableSelectionDialog_extendButton;
	public static String PathVariableSelectionDialog_ExtensionDialog_title;
	public static String PathVariableSelectionDialog_ExtensionDialog_description;
	
	
	
	public static String EditorManager_saveResourcesMessage;
	public static String EditorManager_saveResourcesTitle;
	public static String OpenSystemEditorAction_dialogTitle;
	public static String OpenSystemEditorAction_text;