### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/CreatePackageDeclarationOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreatePackageDeclarationOperation.java,v retrieving revision 1.27 diff -u -r1.27 CreatePackageDeclarationOperation.java --- model/org/eclipse/jdt/internal/core/CreatePackageDeclarationOperation.java 6 Mar 2007 02:38:49 -0000 1.27 +++ model/org/eclipse/jdt/internal/core/CreatePackageDeclarationOperation.java 29 Feb 2008 15:54:13 -0000 @@ -29,7 +29,6 @@ import org.eclipse.jdt.core.dom.StructuralPropertyDescriptor; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** *

This operation adds/replaces a package declaration in an existing compilation unit. @@ -56,7 +55,7 @@ protected StructuralPropertyDescriptor getChildPropertyDescriptor(ASTNode parent) { return CompilationUnit.PACKAGE_PROPERTY; } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { //look for an existing package declaration IJavaElement[] children = getCompilationUnit().getChildren(); for (int i = 0; i < children.length; i++) { Index: model/org/eclipse/jdt/internal/core/JavaModelOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelOperation.java,v retrieving revision 1.70 diff -u -r1.70 JavaModelOperation.java --- model/org/eclipse/jdt/internal/core/JavaModelOperation.java 26 Feb 2008 10:11:45 -0000 1.70 +++ model/org/eclipse/jdt/internal/core/JavaModelOperation.java 29 Feb 2008 15:54:13 -0000 @@ -19,7 +19,6 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.eclipse.jdt.core.*; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** * Defines behavior common to all Java Model operations @@ -421,15 +420,6 @@ } return stack; } - /* - * Returns the existing document for the given cu, or a DocumentAdapter if none. - */ - protected IDocument getDocument(ICompilationUnit cu) throws JavaModelException { - IBuffer buffer = cu.getBuffer(); - if (buffer instanceof IDocument) - return (IDocument) buffer; - return new DocumentAdapter(buffer); - } /** * Returns the element to which this operation applies, * or null if not applicable. Index: model/org/eclipse/jdt/internal/core/CreateFieldOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateFieldOperation.java,v retrieving revision 1.29 diff -u -r1.29 CreateFieldOperation.java --- model/org/eclipse/jdt/internal/core/CreateFieldOperation.java 29 Mar 2006 03:08:48 -0000 1.29 +++ model/org/eclipse/jdt/internal/core/CreateFieldOperation.java 29 Feb 2008 15:54:13 -0000 @@ -25,7 +25,6 @@ import org.eclipse.jdt.core.dom.VariableDeclarationFragment; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** *

This operation creates a field declaration in a type. @@ -48,8 +47,8 @@ public CreateFieldOperation(IType parentElement, String source, boolean force) { super(parentElement, source, force); } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { - ASTNode node = super.generateElementAST(rewriter, document, cu); +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { + ASTNode node = super.generateElementAST(rewriter, cu); if (node.getNodeType() != ASTNode.FIELD_DECLARATION) throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_CONTENTS)); return node; Index: model/org/eclipse/jdt/internal/core/CreateTypeOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeOperation.java,v retrieving revision 1.29 diff -u -r1.29 CreateTypeOperation.java --- model/org/eclipse/jdt/internal/core/CreateTypeOperation.java 8 Apr 2005 20:30:28 -0000 1.29 +++ model/org/eclipse/jdt/internal/core/CreateTypeOperation.java 29 Feb 2008 15:54:13 -0000 @@ -21,7 +21,6 @@ import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** *

This operation creates a class or interface. @@ -40,8 +39,8 @@ public CreateTypeOperation(IJavaElement parentElement, String source, boolean force) { super(parentElement, source, force); } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { - ASTNode node = super.generateElementAST(rewriter, document, cu); +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { + ASTNode node = super.generateElementAST(rewriter, cu); if (!(node instanceof AbstractTypeDeclaration)) throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_CONTENTS)); return node; Index: model/org/eclipse/jdt/internal/core/CompilationUnit.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java,v retrieving revision 1.246 diff -u -r1.246 CompilationUnit.java --- model/org/eclipse/jdt/internal/core/CompilationUnit.java 27 Feb 2008 14:50:26 -0000 1.246 +++ model/org/eclipse/jdt/internal/core/CompilationUnit.java 29 Feb 2008 15:54:13 -0000 @@ -32,6 +32,7 @@ import org.eclipse.jdt.internal.core.util.Util; import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; import org.eclipse.text.edits.MalformedTreeException; import org.eclipse.text.edits.TextEdit; @@ -68,14 +69,13 @@ * @see ICompilationUnit#applyTextEdit(TextEdit, IProgressMonitor) */ public UndoEdit applyTextEdit(TextEdit edit, IProgressMonitor monitor) throws JavaModelException { - IBuffer buffer= getBuffer(); + IBuffer buffer = getBuffer(); if (buffer instanceof IBuffer.ITextEditCapability) { return ((IBuffer.ITextEditCapability) buffer).applyTextEdit(edit, monitor); } else if (buffer != null) { - DocumentAdapter document= new DocumentAdapter(buffer); + IDocument document = buffer instanceof IDocument ? (IDocument) buffer : new DocumentAdapter(buffer); try { UndoEdit undoEdit= edit.apply(document); - buffer.setContents(document.get()); return undoEdit; } catch (MalformedTreeException e) { throw new JavaModelException(e, IJavaModelStatusConstants.BAD_TEXT_EDIT_LOCATION); Index: model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java,v retrieving revision 1.35 diff -u -r1.35 CreateTypeMemberOperation.java --- model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java 29 Mar 2006 03:08:48 -0000 1.35 +++ model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java 29 Feb 2008 15:54:13 -0000 @@ -13,6 +13,7 @@ import java.util.List; import java.util.Map; +import org.eclipse.jdt.core.IBuffer; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaModelStatus; @@ -76,9 +77,9 @@ return TypeDeclaration.BODY_DECLARATIONS_PROPERTY; } } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { if (this.createdNode == null) { - this.source = removeIndentAndNewLines(this.source, document, cu); + this.source = removeIndentAndNewLines(this.source, cu); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(this.source.toCharArray()); parser.setProject(getCompilationUnit().getJavaProject()); @@ -120,7 +121,7 @@ // return a string place holder (instead of the created node) so has to not lose comments and formatting return rewriter.createStringPlaceholder(this.source, this.createdNode.getNodeType()); } -private String removeIndentAndNewLines(String code, IDocument document, ICompilationUnit cu) { +private String removeIndentAndNewLines(String code, ICompilationUnit cu) throws JavaModelException { IJavaProject project = cu.getJavaProject(); Map options = project.getOptions(true/*inherit JavaCore options*/); int tabWidth = IndentManipulation.getTabWidth(options); @@ -135,6 +136,8 @@ while (lastNonWhiteSpace > 0) if (!ScannerHelper.isWhitespace(code.charAt(--lastNonWhiteSpace))) break; + IBuffer buffer = cu.getBuffer(); + IDocument document = buffer instanceof IDocument ? (IDocument) buffer : new DocumentAdapter(buffer); String lineDelimiter = TextUtilities.getDefaultLineDelimiter(document); return IndentManipulation.changeIndent(code.substring(firstNonWhiteSpace, lastNonWhiteSpace+1), indent, tabWidth, indentWidth, "", lineDelimiter); //$NON-NLS-1$ } @@ -199,7 +202,7 @@ //check for name collisions try { ICompilationUnit cu = getCompilationUnit(); - generateElementAST(null, getDocument(cu), cu); + generateElementAST(null, cu); } catch (JavaModelException jme) { return jme.getJavaModelStatus(); } Index: model/org/eclipse/jdt/internal/core/CreateImportOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateImportOperation.java,v retrieving revision 1.31 diff -u -r1.31 CreateImportOperation.java --- model/org/eclipse/jdt/internal/core/CreateImportOperation.java 6 Mar 2007 02:38:49 -0000 1.31 +++ model/org/eclipse/jdt/internal/core/CreateImportOperation.java 29 Feb 2008 15:54:13 -0000 @@ -33,7 +33,6 @@ import org.eclipse.jdt.core.dom.StructuralPropertyDescriptor; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** *

This operation adds an import declaration to an existing compilation unit. @@ -76,7 +75,7 @@ protected StructuralPropertyDescriptor getChildPropertyDescriptor(ASTNode parent) { return CompilationUnit.IMPORTS_PROPERTY; } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { // ensure no duplicate Iterator imports = this.cuAST.imports().iterator(); boolean onDemand = this.importName.endsWith(".*"); //$NON-NLS-1$ Index: model/org/eclipse/jdt/internal/core/CreateMethodOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateMethodOperation.java,v retrieving revision 1.26 diff -u -r1.26 CreateMethodOperation.java --- model/org/eclipse/jdt/internal/core/CreateMethodOperation.java 3 May 2005 14:09:04 -0000 1.26 +++ model/org/eclipse/jdt/internal/core/CreateMethodOperation.java 29 Feb 2008 15:54:13 -0000 @@ -27,7 +27,6 @@ import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; import org.eclipse.jdt.internal.core.util.Util; -import org.eclipse.jface.text.IDocument; /** *

This operation creates an instance method. @@ -74,8 +73,8 @@ } return this.parameterTypes; } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { - ASTNode node = super.generateElementAST(rewriter, document, cu); +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { + ASTNode node = super.generateElementAST(rewriter, cu); if (node.getNodeType() != ASTNode.METHOD_DECLARATION) throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_CONTENTS)); return node; Index: model/org/eclipse/jdt/internal/core/CreateInitializerOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateInitializerOperation.java,v retrieving revision 1.25 diff -u -r1.25 CreateInitializerOperation.java --- model/org/eclipse/jdt/internal/core/CreateInitializerOperation.java 8 Apr 2005 20:30:28 -0000 1.25 +++ model/org/eclipse/jdt/internal/core/CreateInitializerOperation.java 29 Feb 2008 15:54:13 -0000 @@ -19,7 +19,6 @@ import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.IDocument; /** *

This operation creates a initializer in a type. @@ -47,8 +46,8 @@ public CreateInitializerOperation(IType parentElement, String source) { super(parentElement, source, false); } -protected ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException { - ASTNode node = super.generateElementAST(rewriter, document, cu); +protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException { + ASTNode node = super.generateElementAST(rewriter, cu); if (node.getNodeType() != ASTNode.INITIALIZER) throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_CONTENTS)); return node; Index: model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java,v retrieving revision 1.44 diff -u -r1.44 DeleteElementsOperation.java --- model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java 27 Apr 2007 15:51:38 -0000 1.44 +++ model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java 29 Feb 2008 15:54:13 -0000 @@ -29,8 +29,6 @@ import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.internal.core.util.Messages; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; import org.eclipse.text.edits.TextEdit; /** @@ -74,16 +72,11 @@ ASTNode node = ((JavaElement) elementToRemove).findNode(astCU); if (node == null) Assert.isTrue(false, "Failed to locate " + elementToRemove.getElementName() + " in " + cu.getElementName()); //$NON-NLS-1$//$NON-NLS-2$ - IDocument document = getDocument(cu); AST ast = astCU.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); rewriter.remove(node, null); - TextEdit edits = rewriter.rewriteAST(document, null); - try { - edits.apply(document); - } catch (BadLocationException e) { - throw new JavaModelException(e, IJavaModelStatusConstants.INVALID_CONTENTS); - } + TextEdit edits = rewriter.rewriteAST(); + cu.applyTextEdit(edits, this.progressMonitor); } private void initASTParser() { Index: model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java,v retrieving revision 1.37 diff -u -r1.37 CreateElementInCUOperation.java --- model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java 3 Apr 2007 09:33:48 -0000 1.37 +++ model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java 29 Feb 2008 15:54:13 -0000 @@ -10,8 +10,6 @@ *******************************************************************************/ package org.eclipse.jdt.internal.core; -import java.util.Map; - import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.runtime.jobs.ISchedulingRule; @@ -29,8 +27,6 @@ import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.core.dom.rewrite.ListRewrite; import org.eclipse.jdt.internal.core.util.Util; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; import org.eclipse.text.edits.TextEdit; /** @@ -93,14 +89,6 @@ super(null, new IJavaElement[]{parentElement}); initializeDefaultPosition(); } - protected void apply(ASTRewrite rewriter, IDocument document, Map options) throws JavaModelException { - TextEdit edits = rewriter.rewriteAST(document, options); - try { - edits.apply(document); - } catch (BadLocationException e) { - throw new JavaModelException(e, IJavaModelStatusConstants.INVALID_CONTENTS); - } - } /** * Only allow cancelling if this operation is not nested. */ @@ -168,7 +156,7 @@ /* * Returns an AST node for the element being created. */ - protected abstract ASTNode generateElementAST(ASTRewrite rewriter, IDocument document, ICompilationUnit cu) throws JavaModelException; + protected abstract ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException; /* * Generates a new AST for this operation and applies it to the given cu */ @@ -177,14 +165,14 @@ AST ast = this.cuAST.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); - IDocument document = getDocument(cu); - ASTNode child = generateElementAST(rewriter, document, cu); + ASTNode child = generateElementAST(rewriter, cu); if (child != null) { ASTNode parent = ((JavaElement) getParentElement()).findNode(this.cuAST); if (parent == null) parent = this.cuAST; insertASTNode(rewriter, parent, child); - apply(rewriter, document, cu.getJavaProject().getOptions(true)); + TextEdit edits = rewriter.rewriteAST(); + cu.applyTextEdit(edits, this.progressMonitor); } worked(1); } Index: model/org/eclipse/jdt/internal/core/CopyResourceElementsOperation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CopyResourceElementsOperation.java,v retrieving revision 1.106 diff -u -r1.106 CopyResourceElementsOperation.java --- model/org/eclipse/jdt/internal/core/CopyResourceElementsOperation.java 26 Feb 2008 10:11:46 -0000 1.106 +++ model/org/eclipse/jdt/internal/core/CopyResourceElementsOperation.java 29 Feb 2008 15:54:13 -0000 @@ -29,8 +29,6 @@ import org.eclipse.jdt.internal.compiler.util.SuffixConstants; import org.eclipse.jdt.internal.core.util.Messages; import org.eclipse.jdt.internal.core.util.Util; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; import org.eclipse.text.edits.TextEdit; /** @@ -228,7 +226,7 @@ private void processCompilationUnitResource(ICompilationUnit source, PackageFragment dest) throws JavaModelException { String newCUName = getNewNameFor(source); String destName = (newCUName != null) ? newCUName : source.getElementName(); - ASTRewrite rewrite = updateContent(source, dest, newCUName); // null if unchanged + TextEdit edit = updateContent(source, dest, newCUName); // null if unchanged // TODO (frederic) remove when bug 67606 will be fixed (bug 67823) // store encoding (fix bug 66898) @@ -265,7 +263,7 @@ flags |= IResource.KEEP_HISTORY; sourceResource.move(destFile.getFullPath(), flags, getSubProgressMonitor(1)); } else { - if (rewrite != null) flags |= IResource.KEEP_HISTORY; + if (edit != null) flags |= IResource.KEEP_HISTORY; sourceResource.copy(destFile.getFullPath(), flags, getSubProgressMonitor(1)); } setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE); @@ -279,10 +277,10 @@ } // update new resource content - if (rewrite != null){ + if (edit != null){ boolean wasReadOnly = destFile.isReadOnly(); try { - saveContent(dest, destName, rewrite, sourceEncoding, destFile); + saveContent(dest, destName, edit, sourceEncoding, destFile); } catch (CoreException e) { if (e instanceof JavaModelException) throw (JavaModelException) e; throw new JavaModelException(e); @@ -308,8 +306,8 @@ // update new resource content // in case we do a saveas on the same resource we have to simply update the contents // see http://dev.eclipse.org/bugs/show_bug.cgi?id=9351 - if (rewrite != null){ - saveContent(dest, destName, rewrite, sourceEncoding, destFile); + if (edit != null){ + saveContent(dest, destName, edit, sourceEncoding, destFile); } } } @@ -462,13 +460,8 @@ AST ast = astCU.getAST(); ASTRewrite rewrite = ASTRewrite.create(ast); updatePackageStatement(astCU, newFragName, rewrite); - IDocument document = getDocument(cu); - TextEdit edits = rewrite.rewriteAST(document, null); - try { - edits.apply(document); - } catch (BadLocationException e) { - throw new JavaModelException(e, IJavaModelStatusConstants.INVALID_CONTENTS); - } + TextEdit edits = rewrite.rewriteAST(); + cu.applyTextEdit(edits, this.progressMonitor); cu.save(null, false); } } @@ -523,7 +516,7 @@ throw new JavaModelException(ce); } } - private void saveContent(PackageFragment dest, String destName, ASTRewrite rewrite, String sourceEncoding, IFile destFile) throws JavaModelException { + private void saveContent(PackageFragment dest, String destName, TextEdit edits, String sourceEncoding, IFile destFile) throws JavaModelException { try { // TODO (frederic) remove when bug 67606 will be fixed (bug 67823) // fix bug 66898 @@ -534,17 +527,11 @@ // use no encoding } // when the file was copied, its read-only flag was preserved -> temporary set it to false - // note this doesn't interfer with repository providers as this is a new resource that cannot be under + // note this doesn't interfere with repository providers as this is a new resource that cannot be under // version control yet Util.setReadOnly(destFile, false); ICompilationUnit destCU = dest.getCompilationUnit(destName); - IDocument document = getDocument(destCU); - TextEdit edits = rewrite.rewriteAST(document, null); - try { - edits.apply(document); - } catch (BadLocationException e) { - throw new JavaModelException(e, IJavaModelStatusConstants.INVALID_CONTENTS); - } + destCU.applyTextEdit(edits, this.progressMonitor); destCU.save(getSubProgressMonitor(1), this.force); } /** @@ -553,7 +540,7 @@ * * @return an AST rewrite or null if no rewrite needed */ - private ASTRewrite updateContent(ICompilationUnit cu, PackageFragment dest, String newName) throws JavaModelException { + private TextEdit updateContent(ICompilationUnit cu, PackageFragment dest, String newName) throws JavaModelException { String[] currPackageName = ((PackageFragment) cu.getParent()).names; String[] destPackageName = dest.names; if (Util.equalArraysOrNull(currPackageName, destPackageName) && newName == null) { @@ -567,7 +554,7 @@ ASTRewrite rewrite = ASTRewrite.create(ast); updateTypeName(cu, astCU, cu.getElementName(), newName, rewrite); updatePackageStatement(astCU, destPackageName, rewrite); - return rewrite; + return rewrite.rewriteAST(); } } private void updatePackageStatement(CompilationUnit astCU, String[] pkgName, ASTRewrite rewriter) throws JavaModelException {