Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 257057

Summary: [clean up] AssertionFailedException if Save Action "Use blocks in if/... statements" is enabled and if-statement contains syntax errors
Product: [Eclipse Project] JDT Reporter: Kaspar Thommen <snooper77>
Component: TextAssignee: JDT-Text-Inbox <jdt-text-inbox>
Status: CLOSED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: bugzilla, daniel_megert, gubespam
Version: 3.4.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Kaspar Thommen CLA 2008-12-01 06:59:30 EST
Build ID: M20080911-1700

Steps To Reproduce:
1. Go to Window -> Preferences -> Java -> Editor -> Save Actions, enable "Additional actions", press "Configure", tab "Code Style", enable "Use blocks in if/... statements", select "Always".
2. Create a new Java class using the following code snippet:
-------------
class Bug {
  Bug() {
    if (x.)
  }
}
-------------
3. Try to save it
4. A dialog box appears, saying that "A save participant caused problems".



More information:
The log shows the following AssertionFailedException stack trace:

!ENTRY org.eclipse.jdt.ui 4 2 2008-12-01 12:56:23.843
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ui".
!STACK 0
org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:111)
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:97)
	at org.eclipse.text.edits.TextEdit.<init>(TextEdit.java:148)
	at org.eclipse.text.edits.DeleteEdit.<init>(DeleteEdit.java:33)
	at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doTextRemove(ASTRewriteAnalyzer.java:270)
	at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doTextRemoveAndVisit(ASTRewriteAnalyzer.java:279)
	at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.rewriteBodyNode(ASTRewriteAnalyzer.java:684)
	at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:2092)
	at org.eclipse.jdt.core.dom.IfStatement.accept0(IfStatement.java:186)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2478)
	at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.internalRewriteAST(ASTRewrite.java:262)
	at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:251)
	at org.eclipse.jdt.internal.corext.refactoring.structure.CompilationUnitRewrite.attachChange(CompilationUnitRewrite.java:241)
	at org.eclipse.jdt.internal.corext.refactoring.structure.CompilationUnitRewrite.createChange(CompilationUnitRewrite.java:206)
	at org.eclipse.jdt.internal.corext.fix.CompilationUnitRewriteOperationsFix.createChange(CompilationUnitRewriteOperationsFix.java:102)
	at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.calculateChange(CleanUpRefactoring.java:784)
	at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:263)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$5.run(CompilationUnitDocumentProvider.java:1539)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.notifyPostSaveListeners(CompilationUnitDocumentProvider.java:1534)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1331)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1400)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:130)
	at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:104)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:116)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:73)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:63)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:454)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:770)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:4791)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1228)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1281)
	at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:6887)
	at org.eclipse.ui.Saveable.doSave(Saveable.java:212)
	at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:339)
	at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:185)
	at org.eclipse.ui.internal.SaveableHelper$4.run(SaveableHelper.java:266)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:458)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:366)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2487)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:274)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:253)
	at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:196)
	at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:136)
	at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1350)
	at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3291)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3304)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:74)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
	at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
...
Comment 1 Dani Megert CLA 2008-12-01 07:18:50 EST
Works for me using N20081126-2000.
Comment 2 Kaspar Thommen CLA 2008-12-01 09:50:46 EST
(In reply to comment #1)
> Works for me using N20081126-2000.
> 

OK, checked again for I20081127-0900 and it works there.
Comment 3 Dani Megert CLA 2008-12-17 11:31:15 EST
*** Bug 259122 has been marked as a duplicate of this bug. ***
Comment 4 Dani Megert CLA 2009-09-16 06:14:11 EDT
*** Bug 289567 has been marked as a duplicate of this bug. ***