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 ProjectCapabilityEditingPropertyPage_remove;
	public static String ProjectCapabilityPropertyPage_capabilityRequired;
	
	
	
	public static String DefaultEditorDescription_name;
	public static String WelcomeEditor_accessException;
	public static String WelcomeEditor_readFileError;
	public static String WelcomeEditor_title;
	public static String WelcomeEditor_toolTip;
	public static String WelcomeEditor_copy_text;
	public static String WelcomeItem_unableToLoadClass;
	public static String WelcomeParser_parseError;
	public static String WelcomeParser_parseException;
	public static String Workbench_openEditorErrorDialogTitle;
	public static String Workbench_openEditorErrorDialogMessage;
	public static String QuickStartAction_openEditorException;
	
	
	
	public static String Question;
	public static String ContainerSelectionDialog_title;
	public static String ContainerSelectionDialog_message;
	public static String ContainerGroup_message;
	public static String ContainerGroup_selectFolder;
	public static String ContainerGenerator_progressMessage;
	public static String ContainerGenerator_pathOccupied;
	public static String ResourceGroup_resource;
	public static String ResourceGroup_nameExists;
	public static String ResourceGroup_folderEmpty;