### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java,v retrieving revision 1.12 diff -u -r1.12 ExternalFoldersManager.java --- model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 24 Sep 2008 16:28:14 -0000 1.12 +++ model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 1 Oct 2008 13:54:53 -0000 @@ -109,8 +109,11 @@ public IFolder createLinkFolder(IPath externalFolderPath, boolean refreshIfExistAlready, IProgressMonitor monitor) throws CoreException { IProject externalFoldersProject = createExternalFoldersProject(monitor); // run outside synchronized as this can create a resource IFolder result = addFolder(externalFolderPath, externalFoldersProject); + // ensure that the folder is refreshed since the external project is open using BACKGROUND_REFRESH + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=244979 + result.refreshLocal(IResource.DEPTH_ZERO, monitor); if (!result.exists()) - result.createLink(externalFolderPath, IResource.ALLOW_MISSING_LOCAL, monitor); + result.createLink(externalFolderPath, refreshIfExistAlready ? IResource.ALLOW_MISSING_LOCAL : (IResource.ALLOW_MISSING_LOCAL | IResource.BACKGROUND_REFRESH), monitor); else if (refreshIfExistAlready) result.refreshLocal(IResource.DEPTH_INFINITE, monitor); return result; @@ -163,7 +166,7 @@ createExternalFoldersProject(project, monitor); } try { - project.open(monitor); + project.open(IResource.BACKGROUND_REFRESH/*https://bugs.eclipse.org/bugs/show_bug.cgi?id=244979*/, monitor); } catch (CoreException e1) { if (e1.getStatus().getCode() == IResourceStatus.FAILED_READ_METADATA) { // workspace was moved (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=241400) @@ -198,7 +201,7 @@ createExternalFoldersProject(project, monitor); } } - project.open(monitor); + project.open(IResource.BACKGROUND_REFRESH/*https://bugs.eclipse.org/bugs/show_bug.cgi?id=244979*/, monitor); } } return project;