In Development
Last Updated: 14 Nov 2019 14:47 by ADMIN
ADMIN
Boby
Created on: 30 Mar 2017 10:23
Category: RichTextBox
Type: Bug Report
1
RichTextBox: StackOverflowException/ArgumentException is thrown when updating document with annotations and with enabled spell checking
StackOverflowException is sometimes thrown while a document containing annotations is updated in the main thread (e.g. by typing in it), and spell checking is enabled.

The exception is thrown in a background thread, which call stack similar to this one:

2f89dfe8 00566287 Telerik.Windows.Documents.Cache.IntervalTree.IntervalNode`2[[System.__Canon, mscorlib],[Telerik.Windows.Documents.Cache.IntervalTree.HierarchicalIndexStruct, Telerik.Windows.Documents]]..ctor(System.Collections.Generic.IEnumerable`1<System.__Canon>)
2f89e084 00566287 Telerik.Windows.Documents.Cache.IntervalTree.IntervalNode`2[[System.__Canon, mscorlib],
...
2f89e4dc 00565cd8 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.RebuildTree()
2f89e52c 005658c1 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.Rebuild()
2f89e538 1413b704 Telerik.Windows.Documents.Cache.RadChildrenCacheBase`1[[System.__Canon, mscorlib]].EnsureValid()
2f89e568 00568c72 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.ContainsAnnotationMarkersOfType[[System.__Canon, mscorlib]]()
2f89e5c0 00568b29 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.GetContainingAnnotationRanges[[System.__Canon, mscorlib]](Telerik.Windows.Documents.Model.Inline, Boolean)
2f89e618 0056896f Telerik.Windows.Documents.Model.RadDocument.GetContainingAnnotationRanges[[System.__Canon, mscorlib]](Telerik.Windows.Documents.Model.Inline, System.Predicate`1<System.__Canon>, Boolean)
2f89e654 1b6b76d3 Telerik.Windows.Documents.Proofing.DocumentProofingManager.IsPositionInIgnoredRange(Telerik.Windows.Documents.DocumentPosition)
2f89e664 1b6b72e7 Telerik.Windows.Documents.Proofing.DocumentProofingManager+<SplitRangeToUpdate>d__2.MoveNext()
2f89e690 1b6b7019 Telerik.Windows.Documents.Proofing.DocumentProofingManager.UpdateIncorrectWordsList(Telerik.Windows.Documents.DocumentPosition, Telerik.Windows.Documents.DocumentPosition)
2f89e6c0 1b6b6ef2 Telerik.Windows.Documents.UI.Layers.TextDecorationLayers.ProofingErrorsDecorationUILayer+<>c__DisplayClass9.<MarkBoxesWithSpellingErrorsAsynch>b__5()
2f89e6d0 1b612094 Telerik.Windows.Documents.Utils.DelayedExecution.ExecuteAction(Boolean)
2f89e6e4 1b6b6e34 Telerik.Windows.Documents.Utils.DelayedExecution.OnThreadingTimer(System.Object)
2f89e704 65fa5b38 System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
2f89e708 65fc4157 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
2f89e774 65fc4096 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
2f89e788 65fa5a81 System.Threading.TimerQueueTimer.CallCallback()
2f89e7bc 65fa593c System.Threading.TimerQueueTimer.Fire()
2f89e7fc 65fa5861 System.Threading.TimerQueue.FireNextTimers()
2f89e83c 65fa5724 System.Threading.TimerQueue.AppDomainTimerCallback()
2f89ea68 66d73de2 [DebuggerU2MCatchHandlerFrame: 2f89ea68] 

Note: Until 2017 R2 SP1 release StackOverflowException is thrown, after this release an ArgumentException should be thrown.
1 comment
ADMIN
Boby
Posted on: 02 Aug 2017 08:52
Due to recent code changes, now ArgumentException will be thrown in this case. ArgumentException is less severe as it could be handed by the runtime, and given the fact that the invocation throwing the exception is in a background thread, the issue could be "almost" resolved. I suspect that after migrating to 2017 R3 (expected in mid-September), the issue will be noticeable only as some real-time spell checker glitches.