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 ResourceGroup_noProject;
	public static String ResourceGroup_emptyName;
	public static String ResourceGroup_invalidFilename;
	public static String ResourceGroup_pathOccupied;
	public static String FileSelectionDialog_title;
	public static String FileSelectionDialog_message;
	public static String ProjectLocationSelectionDialog_nameLabel;
	public static String ProjectLocationSelectionDialog_locationLabel;
	public static String ProjectLocationSelectionDialog_browseLabel;
	public static String ProjectLocationSelectionDialog_directoryLabel;
	public static String ProjectLocationSelectionDialog_locationError;
	public static String ProjectLocationSelectionDialog_selectionTitle;
	public static String ProjectLocationSelectionDialog_useDefaultLabel;
	public static String ProjectPerspectiveChoiceDialog_title;
	public static String ProjectPerspectiveChoiceDialog_choosePerspective;
	public static String ProjectPerspectiveChoiceDialog_options;
	public static String ProjectPerspectiveChoiceDialog_newWindow;
	public static String ProjectPerspectiveChoiceDialog_sameWindow;
	public static String ProjectPerspectiveChoiceDialog_errorTitle;
	public static String ProjectPerspectiveChoiceDialog_errorMessage;
	public static String ResourceSelectionDialog_title;
	public static String ResourceSelectionDialog_message;
	public static String MarkerResolutionSelectionDialog_title;
	public static String MarkerResolutionSelectionDialog_messageLabel;
	public static String ResourceSelectionDialog_label;
	public static String ResourceSelectionDialog_matching;
	public static String ResourceSelectionDialog_folders;
	public static String ResourceSelectionDialog_showDerived;
	public static String OpenResourceDialog_title;
	public static String NewFolderDialog_title;