Bug 114423 - "Document does not match the AST" error when modifying compilationUnit and then moving it
Summary: "Document does not match the AST" error when modifying compilationUnit and th...
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2005-10-31 16:23 EST by Tom Mutdosch CLA
Modified: 2009-08-30 02:07 EDT (History)
3 users (show)

See Also:


Attachments
Regression test (2.89 KB, patch)
2005-11-02 10:41 EST, Jerome Lanneluc CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Mutdosch CLA 2005-10-31 16:23:59 EST
I have a MoveParticipant class to handle some refactoring when a file is moved.
 My code gets a corresponding Java file, adds some imports to the compilation
unit, and then moves the compilation unit.  Something like:

compilationUnit.createImport(fullyQualifiedType, null, monitor);
 . . . 
compilationUnit.move(destination, null, newName, true, monitor);

This code used to work fine, but now (using 3.1.1 R-200510051713) I get the AST
exception below.  This only happens when the compilationUnit is modified by
adding the imports.   I can't work around this by first moving the compilation
unit and then adding the imports afterwards, due to eclipse bug 73079 . 

Here is the exception that I receive:

java.lang.IllegalArgumentException: Document does not match the AST
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.handleException(ASTRewriteAnalyzer.java:3229)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.getPosAfterLeftBrace(ASTRewriteAnalyzer.java:992)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1402)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doVisit(ASTRewriteAnalyzer.java:270)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.voidVisitList(ASTRewriteAnalyzer.java:308)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.voidVisit(ASTRewriteAnalyzer.java:302)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doVisitUnchangedChildren(ASTRewriteAnalyzer.java:315)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1275)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:294)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:186)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.saveContent(CopyResourceElementsOperation.java:543)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:281)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:335)
	at
org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:162)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:353)
	at
org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:782)
	at org.eclipse.jdt.internal.core.JavaModel.runOperation(JavaModel.java:323)
	at org.eclipse.jdt.internal.core.JavaModel.move(JavaModel.java:284)
	at org.eclipse.jdt.internal.core.CompilationUnit.move(CompilationUnit.java:979)
	at
com.ibm.etools.webtools.javamodel.tasks.MoveModelTask.executeTask(MoveModelTask.java)
	at
com.ibm.etools.webtools.javamodel.api.AbstractJavaModelTask$1.run(AbstractJavaModelTask.java:72)
	at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3761)
	at
com.ibm.etools.webtools.javamodel.api.AbstractJavaModelTask.run(AbstractJavaModelTask.java:80)
	at
com.ibm.etools.webtools.javamodel.api.JavaModel._internalRunJavaTask(JavaModel.java:546)
	at com.ibm.etools.webtools.javamodel.api.JavaModel.runJavaTask(JavaModel.java:567)
	at
com.ibm.etools.webtools.javamodel.api.JavaModel.runBlockingJavaTask(JavaModel.java:424)
	at
com.ibm.etools.webtools.codebehind.java.refactoring.changes.MovePageCodeChange.perform(MovePageCodeChange.java)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:279)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:279)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:232)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1739)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:280)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$1(UIPerformChangeOperation.java:1)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(UIPerformChangeOperation.java:63)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$2.run(UIPerformChangeOperation.java:81)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:153)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:303)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:293)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(RefactoringWizard.java:547)
	at
org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish(UserInputWizardPage.java:153)
	at
org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveWizard$MoveInputPage.performFinish(ReorgMoveWizard.java:106)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:613)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:417)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:409)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:556)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
	at org.eclipse.jface.window.Window.open(Window.java:787)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:125)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:138)
	at
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40)
	at
org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startRefactoring(RefactoringExecutionStarter.java:321)
	at
org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveAction.run(ReorgMoveAction.java:108)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:222)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198)
	at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:127)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:222)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)
	at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
	at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
	at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
	at java.lang.reflect.Method.invoke(Method.java:391)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
	at org.eclipse.core.launcher.Main.run(Main.java:973)
	at org.eclipse.core.launcher.Main.main(Main.java:948)
Caused by: org.eclipse.core.runtime.CoreException: End Of File
	at
org.eclipse.jdt.internal.core.dom.rewrite.TokenScanner.readNext(TokenScanner.java:121)
	at
org.eclipse.jdt.internal.core.dom.rewrite.TokenScanner.readNext(TokenScanner.java:159)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.getPosAfterLeftBrace(ASTRewriteAnalyzer.java:987)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1402)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doVisit(ASTRewriteAnalyzer.java:270)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.voidVisitList(ASTRewriteAnalyzer.java:308)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.voidVisit(ASTRewriteAnalyzer.java:302)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doVisitUnchangedChildren(ASTRewriteAnalyzer.java:315)
	at
org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1275)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:294)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:186)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.saveContent(CopyResourceElementsOperation.java:543)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:281)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:335)
	at
org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:162)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:353)
	at
org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:782)
	at org.eclipse.jdt.internal.core.JavaModel.runOperation(JavaModel.java:323)
	at org.eclipse.jdt.internal.core.JavaModel.move(JavaModel.java:284)
	at org.eclipse.jdt.internal.core.CompilationUnit.move(CompilationUnit.java:979)
	at
com.ibm.etools.webtools.javamodel.tasks.MoveModelTask.executeTask(MoveModelTask.java)
	at
com.ibm.etools.webtools.javamodel.api.AbstractJavaModelTask$1.run(AbstractJavaModelTask.java:72)
	at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3761)
	at
com.ibm.etools.webtools.javamodel.api.AbstractJavaModelTask.run(AbstractJavaModelTask.java:80)
	at
com.ibm.etools.webtools.javamodel.api.JavaModel._internalRunJavaTask(JavaModel.java:546)
	at com.ibm.etools.webtools.javamodel.api.JavaModel.runJavaTask(JavaModel.java:567)
	at
com.ibm.etools.webtools.javamodel.api.JavaModel.runBlockingJavaTask(JavaModel.java:424)
	at
com.ibm.etools.webtools.codebehind.java.refactoring.changes.MovePageCodeChange.perform(MovePageCodeChange.java)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:279)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:279)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:232)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1719)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1739)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:280)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$1(UIPerformChangeOperation.java:1)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(UIPerformChangeOperation.java:63)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$2.run(UIPerformChangeOperation.java:81)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:153)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:303)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:293)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(RefactoringWizard.java:547)
	at
org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish(UserInputWizardPage.java:153)
	at
org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveWizard$MoveInputPage.performFinish(ReorgMoveWizard.java:106)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:613)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:417)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:409)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:556)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
	at org.eclipse.jface.window.Window.open(Window.java:787)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:125)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:138)
	at
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40)
	at
org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startRefactoring(RefactoringExecutionStarter.java:321)
	at
org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveAction.run(ReorgMoveAction.java:108)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:222)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198)
	at org.eclipse.jdt.ui.actions.MoveAction.run(MoveAction.java:127)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:222)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:198)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)
	at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
	at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
	at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
	at java.lang.reflect.Method.invoke(Method.java:391)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
	at org.eclipse.core.launcher.Main.run(Main.java:973)
	at org.eclipse.core.launcher.Main.main(Main.java:948)
Comment 1 Jerome Lanneluc CLA 2005-11-02 10:41:44 EST
Created attachment 29173 [details]
Regression test

I cannot reproduce this problem. The attached regressin test passes with 3.1.1
and 3.2 M3.
Comment 2 Tom Mutdosch CLA 2005-11-02 13:40:24 EST
I couldn't run your test myself because I don't seem to have the
CopyMoveResourcesTests class in my copy of eclipse, but I'll take your word for
it.  

Then that means that it works in your case but I am still seeing the problem -
so what causes this error exactly?  What does it mean is happening?  I can try
doing something differently.  It looks like a BatchOperation is executing and
then my code adds an import and then calls move and then I get that error.  I
tried calling reconcile() between adding the import and moving the
CompilationUnit, but that didn't seem to help any.  Any other ideas?  
Thanks for the help.
Comment 3 Jerome Lanneluc CLA 2005-11-02 17:54:58 EST
Martin, any idea why this would fail with this message ?
Comment 4 Markus Keller CLA 2005-11-07 14:48:52 EST
Hm, it's hard to tell what's going on without an example to reproduce. Tom, is
the compilation unit you move completely independent from the compilation units
that are touched by JDT/UI's move refactoring? Or could it be that you move a CU
that has already been changed before?

If I see that correctly, you're running in a JavaCore.run(..), which in turn
runs inside a ResourcesPlugin.getWorkspace().run(..) block. Jerome, could that
be a problem? The ...

Caused by: org.eclipse.core.runtime.CoreException: End Of File
	at
org.eclipse.jdt.internal.core.dom.rewrite.TokenScanner.readNext(TokenScanner.java:121)

... looks like there's a problem with the buffer management.
Comment 5 Tom Mutdosch CLA 2005-11-08 12:18:35 EST
Yes, I am pretty sure that the CU is independent of any other changes, because
my scenario is:  A JSP file is moved via the eclipse Refactor->Move context
menu.  There shouldn't be any CU's touched by the JDT refactoring process.  I
have a MoveParticipant that then gets a CU from an unrelated Java file, and then
upates its imports and moves it.  
That's when I get the AST exception.

I have found that if I both reconcile and commit the CU after adding the import
and before moving the CU, I do not get the exception:

cu.createImport(fullyQualifiedType, null, monitor);
cu.reconcile(ICompilationUnit.NO_AST, false, null, null);
cu.commitWorkingCopy(false, pm);
cu.move(destination, null, newName, true, monitor);
Comment 6 Jerome Lanneluc CLA 2006-10-02 09:13:21 EDT
I still cannot reproduce. Please reopen if it still happens in Eclipse 3.2 or later and if you have details on how to reproduce.
Comment 7 Denis Roy CLA 2009-08-30 02:07:44 EDT
As of now 'LATER' and 'REMIND' resolutions are no longer supported.
Please reopen this bug if it is still valid for you.