diff options
2 files changed, 25 insertions, 3 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java index 7c0373903d..09321c4094 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2016 IBM Corporation and others. + * Copyright (c) 2000, 2018 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -16,6 +16,7 @@ import junit.framework.Test; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IPackageFragment; +import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.dom.AST; import org.eclipse.jdt.core.dom.ASTNode; @@ -2019,5 +2020,22 @@ public class ASTRewritingTypeDeclTest extends ASTRewritingTest { assertEqualString(preview, expected); } + public void testBug526097a() throws Exception { + IPackageFragment pack1 = this.sourceFolder.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH); + StringBuffer buf= new StringBuffer(); + buf.append("public class T"); + ICompilationUnit cu= pack1.createCompilationUnit("Test.java", buf.toString(), false, null); + CompilationUnit astRoot= createAST(getAST8(), cu, true, false); + List<TypeDeclaration> types = astRoot.types(); + TypeDeclaration typeDeclaration = types.get(0); + SimpleName simpleName = typeDeclaration.getName(); + AST ast= astRoot.getAST(); + ASTRewrite rewrite= ASTRewrite.create(ast); + rewrite.replace(simpleName, ast.newSimpleName("Test"), null); + String preview= evaluateRewrite(cu, rewrite); + buf= new StringBuffer(); + buf.append("public class Test"); + assertEqualString(preview, buf.toString()); + } } diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java index 061f53e469..9e16f9b0b7 100644 --- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java +++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2017 IBM Corporation and others. + * Copyright (c) 2000, 2018 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -1341,7 +1341,11 @@ public final class ASTRewriteAnalyzer extends ASTVisitor { * Next token is a left brace. Returns the offset after the brace. For incomplete code, return the start offset. */ private int getPosAfterLeftBrace(int pos) { - return getPosAfterToken(pos, TerminalTokens.TokenNameLBRACE); + try { + return getPosAfterToken(pos, TerminalTokens.TokenNameLBRACE); + } catch (IllegalArgumentException e) { + return pos; + } } /* |