Bug 658027

Summary: Saving and auto format causing incorrect formating
Product: [Mono] MonoDevelop Reporter: Stephen Shaw <stshaw>
Component: texteditorAssignee: Mike Krueger <mkrueger>
Status: RESOLVED DUPLICATE QA Contact: MD Bugs <monodevelop-bugs>
Severity: Major    
Priority: P5 - None    
Version: SVN   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Stephen Shaw 2010-12-07 17:10:09 UTC
I added and then removed a newline from my file.
clicked build all
This caused a save which messed up the file and caused several exceptions to be thrown.  The first was in a dialog and the second was in the terminal.

#########################################################################
System.InvalidOperationException: Tried to remove non ws chars: ' {
                if (description_entry.Sensitive == false) {
                                description_entry.Sensi
                }ti                 true;

				string desc = Item.Current.D                iption;
				if (description_entry.Text                    esc) {
					description_entry.Text = desc == null ? String.Em                : desc;
				}
                          else {
				description_entry.Sensiti                 false;
				description_entry.Text = St            g.E            y;
			}

			description_entry.Changed += HandleDescriptionChanged;               }

		'
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.AddChange (Int32 offset, Int32 removedChars, System.String insertedText) [0x001a7] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:756 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.FixEmbeddedStatment (BraceStyle braceStyle, BraceForcement braceForcement, MonoDevelop.CSharp.Dom.CSharpTokenNode token, Boolean allowInLine, MonoDevelop.CSharp.Dom.DomNode node) [0x001bb] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:607 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.VisitIfElseStatement (MonoDevelop.CSharp.Dom.IfElseStatement ifElseStatement, System.Object data) [0x00060] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:833 
  at MonoDevelop.CSharp.Dom.IfElseStatement.AcceptVisitor[Object,Object] (MonoDevelop.CSharp.Dom.DomVisitor`2 visitor, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/Statements/IfElseStatement.cs:72 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitChildren (MonoDevelop.CSharp.Dom.DomNode node, MonoDevelop.CSharp.Dom.T data) [0x0000c] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:37 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitBlockStatement (MonoDevelop.CSharp.Dom.BlockStatement blockStatement, MonoDevelop.CSharp.Dom.T data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:178 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.VisitMethodDeclaration (MonoDevelop.CSharp.Dom.MethodDeclaration methodDeclaration, System.Object data) [0x00061] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:452 
  at MonoDevelop.CSharp.Dom.MethodDeclaration.AcceptVisitor[Object,Object] (MonoDevelop.CSharp.Dom.DomVisitor`2 visitor, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/TypeMembers/MethodDeclaration.cs:74 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitTypeDeclaration (MonoDevelop.CSharp.Dom.TypeDeclaration typeDeclaration, MonoDevelop.CSharp.Dom.T data) [0x0001a] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:91 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.VisitTypeDeclaration (MonoDevelop.CSharp.Dom.TypeDeclaration typeDeclaration, System.Object data) [0x000e8] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:196 
  at MonoDevelop.CSharp.Dom.TypeDeclaration.AcceptVisitor[Object,Object] (MonoDevelop.CSharp.Dom.DomVisitor`2 visitor, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/GeneralScope/TypeDeclaration.cs:92 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitChildren (MonoDevelop.CSharp.Dom.DomNode node, MonoDevelop.CSharp.Dom.T data) [0x0000c] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:37 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitNamespaceDeclaration (MonoDevelop.CSharp.Dom.NamespaceDeclaration namespaceDeclaration, MonoDevelop.CSharp.Dom.T data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:85 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.VisitNamespaceDeclaration (MonoDevelop.CSharp.Dom.NamespaceDeclaration namespaceDeclaration, System.Object data) [0x00068] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:160 
  at MonoDevelop.CSharp.Dom.NamespaceDeclaration.AcceptVisitor[Object,Object] (MonoDevelop.CSharp.Dom.DomVisitor`2 visitor, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/GeneralScope/NamespaceDeclaration.cs:87 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitChildren (MonoDevelop.CSharp.Dom.DomNode node, MonoDevelop.CSharp.Dom.T data) [0x0000c] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:37 
  at MonoDevelop.CSharp.Dom.DomVisitor`2[T,S].VisitCompilationUnit (MonoDevelop.CSharp.Dom.CompilationUnit unit, MonoDevelop.CSharp.Dom.T data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/DomVisitor.cs:45 
  at MonoDevelop.CSharp.Formatting.DomIndentationVisitor.VisitCompilationUnit (MonoDevelop.CSharp.Dom.CompilationUnit unit, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/DomIndentationVisitor.cs:85 
  at MonoDevelop.CSharp.Dom.CompilationUnit.AcceptVisitor[Object,Object] (MonoDevelop.CSharp.Dom.DomVisitor`2 visitor, System.Object data) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/CompilationUnit.cs:97 
  at MonoDevelop.CSharp.Formatting.CSharpFormatter.OnTheFlyFormat (MonoDevelop.Projects.Policies.PolicyContainer policyParent, System.Object textEditorData, Int32 startOffset, Int32 endOffset) [0x0007b] in /mnt/data/code/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormatter.cs:110 
  at MonoDevelop.Projects.Text.Formatter.OnTheFlyFormat (MonoDevelop.Projects.Policies.PolicyContainer policyParent, System.Object textEditorData, Int32 startOffset, Int32 endOffset) [0x00026] in /mnt/data/code/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/Formatter.cs:95 
  at MonoDevelop.SourceEditor.SourceEditorView.Save (System.String fileName, System.String encoding) [0x000f3] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:371 
  at MonoDevelop.SourceEditor.SourceEditorView.Save (System.String fileName) [0x00000] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:342 
  at MonoDevelop.Ide.Gui.Document.Save () [0x00123] in /mnt/data/code/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs:241 
  at MonoDevelop.Ide.ProjectOperations.DoBeforeCompileAction () [0x00112] in /mnt/data/code/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:1054 
  at MonoDevelop.Ide.ProjectOperations.Build (IBuildTarget entry) [0x0007f] in /mnt/data/code/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:989



#########################################################################
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208 
Exception in animation:System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-managed) object:ElementAddr (object,int,int,int,int,int)
  at MonoDevelop.SourceEditor.MessageBubbleHighlightPopupWindow.RenderInitialPixbuf (Gdk.Window parentwindow, Rectangle bounds) [0x0001c] in /mnt/data/code/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleHighlightPopupWindow.cs:62 
  at Mono.TextEditor.Theatrics.BounceFadePopupWindow.OnExposeEvent (Gdk.EventExpose evnt) [0x00060] in /mnt/data/code/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor.Theatrics/BounceFadePopupWindow.cs:208

<snip>Lots of errors about unexpected symbol 'X'
Comment 1 Stephen Shaw 2010-12-07 18:20:23 UTC
If I disable format on save I don't run into this.
Comment 2 Mike Krueger 2011-01-06 08:58:08 UTC
I need the source file where that happens - it's a bug in the formatting engine.
Comment 3 Mike Krueger 2011-02-17 11:23:04 UTC
I fixed some of the code formatting bugs - but without the source file I'm not sure about your case. I'll close this one as duplicate. Would be nice if you could provide the source  code file the next time something like this happens.

*** This bug has been marked as a duplicate of bug 672154 ***