### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/LocalVariable.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/LocalVariable.java,v retrieving revision 1.28 diff -u -r1.28 LocalVariable.java --- model/org/eclipse/jdt/internal/core/LocalVariable.java 27 Jun 2008 16:03:51 -0000 1.28 +++ model/org/eclipse/jdt/internal/core/LocalVariable.java 21 Aug 2008 10:13:36 -0000 @@ -228,7 +228,7 @@ buff.append(JEM_COUNT); buff.append(this.nameEnd); buff.append(JEM_COUNT); - buff.append(this.typeSignature); + escapeMementoName(buff, this.typeSignature); if (this.occurrenceCount > 1) { buff.append(JEM_COUNT); buff.append(this.occurrenceCount); #P org.eclipse.jdt.core.tests.model 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 retrieving revision 1.25 diff -u -r1.25 MementoTests.java --- src/org/eclipse/jdt/core/tests/model/MementoTests.java 27 Jun 2008 16:02:38 -0000 1.25 +++ src/org/eclipse/jdt/core/tests/model/MementoTests.java 21 Aug 2008 10:13:38 -0000 @@ -470,6 +470,18 @@ /** * Tests that a local variable can be persisted and restored using its memento. */ +public void testLocalVariableMemento2() throws JavaModelException { + IType type = getClassFile("/P/src/p/X.class").getType(); + IMethod method = type.getMethod("foo", new String[]{"I"}); + + ILocalVariable localVar = new LocalVariable((JavaElement)method, "var", 1, 2, 3, 4, "Z", null); + assertMemento( + "=P/src {\n" + + " void foo() {\n" + + " X var = null;\n" + + " }\n" + + "}" + ); + ILocalVariable localVar = getLocalVariable(getCompilationUnit("/P1/src/X.java"), "var", "var"); + String memento = localVar.getHandleIdentifier(); + IJavaElement restored = JavaCore.create(memento); + String restoredMemento = restored.getHandleIdentifier(); + assertEquals("Unexpected restored memento", memento, restoredMemento); + } finally { + deleteProject("P1"); + } } /** * Tests that a package declaration can be persisted and restored using its memento.