### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java,v retrieving revision 1.15 diff -u -r1.15 ChangeClasspathOperation.java --- model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java 28 Apr 2009 16:53:01 -0000 1.15 +++ model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java 28 Apr 2010 11:02:56 -0000 @@ -39,7 +39,7 @@ * - update project references * - create resolved classpath markers */ - protected void classpathChanged(ClasspathChange change) throws JavaModelException { + protected void classpathChanged(ClasspathChange change, boolean refreshExternalFolder) throws JavaModelException { // reset the project's caches early since some clients rely on the project's caches being up-to-date when run inside an IWorkspaceRunnable // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=212769#c5 ) JavaProject project = change.project; @@ -59,7 +59,7 @@ new ProjectReferenceChange(project, change.oldResolvedClasspath).updateProjectReferencesIfNecessary(); // and ensure that external folders are updated as well - new ExternalFolderChange(project, change.oldResolvedClasspath).updateExternalFoldersIfNecessary(true/*refresh if external linked folder already exists*/, null); + new ExternalFolderChange(project, change.oldResolvedClasspath).updateExternalFoldersIfNecessary(refreshExternalFolder, null); } else { DeltaProcessingState state = JavaModelManager.getDeltaState(); Index: model/org/eclipse/jdt/internal/core/SetClasspathOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetClasspathOperation.java,v retrieving revision 1.157 diff -u -r1.157 SetClasspathOperation.java --- model/org/eclipse/jdt/internal/core/SetClasspathOperation.java 2 Mar 2010 06:46:00 -0000 1.157 +++ model/org/eclipse/jdt/internal/core/SetClasspathOperation.java 28 Apr 2010 11:02:56 -0000 @@ -71,7 +71,7 @@ ClasspathChange classpathChange = perProjectInfo.setRawClasspath(this.newRawClasspath, this.referencedEntries, this.newOutputLocation, JavaModelStatus.VERIFIED_OK/*format is ok*/); // if needed, generate delta, update project ref, create markers, ... - classpathChanged(classpathChange); + classpathChanged(classpathChange, true/*refresh if external linked folder already exists*/); // write .classpath file if (this.canChangeResources && perProjectInfo.writeAndCacheClasspath(this.project, this.newRawClasspath, this.newOutputLocation)) Index: model/org/eclipse/jdt/internal/core/SetContainerOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetContainerOperation.java,v retrieving revision 1.14 diff -u -r1.14 SetContainerOperation.java --- model/org/eclipse/jdt/internal/core/SetContainerOperation.java 8 Apr 2010 10:05:52 -0000 1.14 +++ model/org/eclipse/jdt/internal/core/SetContainerOperation.java 28 Apr 2010 11:02:56 -0000 @@ -107,7 +107,7 @@ ClasspathChange classpathChange = affectedProject.getPerProjectInfo().resetResolvedClasspath(); // if needed, generate delta, update project ref, create markers, ... - classpathChanged(classpathChange); + classpathChanged(classpathChange, i==0/*refresh external linked folder only once*/); if (this.canChangeResources) { // touch project to force a build if needed Index: model/org/eclipse/jdt/internal/core/SetVariablesOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetVariablesOperation.java,v retrieving revision 1.9 diff -u -r1.9 SetVariablesOperation.java --- model/org/eclipse/jdt/internal/core/SetVariablesOperation.java 27 Jun 2008 16:03:50 -0000 1.9 +++ model/org/eclipse/jdt/internal/core/SetVariablesOperation.java 28 Apr 2010 11:02:56 -0000 @@ -144,7 +144,7 @@ ClasspathChange classpathChange = affectedProject.getPerProjectInfo().resetResolvedClasspath(); // if needed, generate delta, update project ref, create markers, ... - classpathChanged(classpathChange); + classpathChanged(classpathChange, true/*refresh if external linked folder already exists*/); if (this.canChangeResources) { // touch project to force a build if needed