Index: model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java,v --- model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 27 Jun 2008 16:03:50 -0000 1.133 +++ model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 25 Nov 2008 10:16:38 -0000 @@ -454,7 +454,7 @@ */ protected void getHandleMemento(StringBuffer buff) { IPath path; - IResource underlyingResource = resource(); + IResource underlyingResource = getResource(); if (underlyingResource != null) { // internal jar or regular root if (resource().getProject().equals(getJavaProject().getProject())) { Index: src/org/eclipse/jdt/core/tests/model/MementoTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/MementoTests.java,v --- src/org/eclipse/jdt/core/tests/model/MementoTests.java 21 Aug 2008 10:15:28 -0000 1.26 +++ src/org/eclipse/jdt/core/tests/model/MementoTests.java 25 Nov 2008 10:16:39 -0000 @@ -13,8 +13,8 @@ import java.io.File; import org.eclipse.core.resources.*; -import org.eclipse.core.resources.IFolder; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Path; import org.eclipse.jdt.core.*; import org.eclipse.jdt.core.tests.util.Util; import org.eclipse.jdt.internal.core.JavaElement; @@ -65,7 +65,9 @@ restored); } protected String getEscapedExternalJCLPath() { - String path = getExternalJCLPath().toString(); + return getEscapedPath(getExternalJCLPath().toString()); +} +protected String getEscapedPath(String path) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < path.length(); i++) { char character = path.charAt(i); @@ -77,6 +79,12 @@ public void setUpSuite() throws Exception { super.setUpSuite(); + Util.createClassFolder(new String[] { + "X.java", + "public class X {}" + }, + getExternalResourcePath("myLib"), + "1.4"); this.createJavaProject( "P", new String[] {"src"}, @@ -86,11 +94,13 @@ "/P/lib/myLib.jar", "/OtherProj/lib", "/OtherProj/lib/myLib.jar", + getExternalResourcePath("myLib") }, "bin"); } public void tearDownSuite() throws Exception { this.deleteProject("P"); + deleteExternalResource("myLib"); super.tearDownSuite(); } /* @@ -338,6 +348,15 @@ "=P/" + device + "\\/lib.jar