### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/ClasspathEntry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClasspathEntry.java,v retrieving revision 1.123 diff -u -r1.123 ClasspathEntry.java --- model/org/eclipse/jdt/internal/core/ClasspathEntry.java 1 Feb 2010 11:13:25 -0000 1.123 +++ model/org/eclipse/jdt/internal/core/ClasspathEntry.java 22 Feb 2010 03:37:43 -0000 @@ -898,7 +898,7 @@ } } - private static List getCalledFileNames(IPath jarPath) { + static List getCalledFileNames(IPath jarPath) { Object target = JavaModel.getTarget(jarPath, true/*check existence, otherwise the manifest cannot be read*/); if (!(target instanceof IFile || target instanceof File)) return null; Index: model/org/eclipse/jdt/internal/core/JavaModelManager.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java,v retrieving revision 1.443 diff -u -r1.443 JavaModelManager.java --- model/org/eclipse/jdt/internal/core/JavaModelManager.java 15 Feb 2010 20:20:48 -0000 1.443 +++ model/org/eclipse/jdt/internal/core/JavaModelManager.java 22 Feb 2010 03:37:46 -0000 @@ -1525,7 +1525,9 @@ public void addNonChainingJar(IPath path) { if (this.nonChainingJars == null) return; - this.nonChainingJars.add(path); + synchronized (this.nonChainingJars) { + this.nonChainingJars.add(path); + } } /** @@ -2910,9 +2912,9 @@ IClasspathEntry entry = classpath[j]; IPath path; if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY - && !result.contains(path = entry.getPath()) - && ClasspathEntry.resolvedChainedLibraries(path).length == 0) { - result.add(path); + && !result.contains(path = entry.getPath()) + && ClasspathEntry.getCalledFileNames(path) == null) { + result.add(path); } } }