Bug 115342 - [misc] AFE in RangeDifferencer#findDifferencesUkkonen
Summary: [misc] AFE in RangeDifferencer#findDifferencesUkkonen
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.2   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Tom Hofmann CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2005-11-07 11:58 EST by Tobias Widmer CLA
Modified: 2007-06-22 10:04 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Widmer CLA 2005-11-07 11:58:25 EST
3.2 M3

Just found this one in the log after formatting some cus. Can't provide more 
detainled steps.

org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed:
        at org.eclipse.jface.util.Assert.isTrue(Assert.java:180)
        at org.eclipse.jface.util.Assert.isTrue(Assert.java:165)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDiff
erencer.findDifferencesUkkone
(RangeDifferencer.java:167)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDiff
erencer.findDifferences(Range
ifferencer.java:79)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDiff
erencer.findRanges(RangeDiffe
encer.java:221)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDiff
erencer.findRanges(RangeDiffe
encer.java:206)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.handleChanged
(DocumentLineDiffer.java:929)
        at 
org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.documentChanged
(DocumentLineDiffer.java:762)
        at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2
(AbstractDocument.java:729)
        at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged
(AbstractDocument.java:692)
        at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged
(AbstractDocument.java:677)
        at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged
(AbstractDocument.java:754)
        at org.eclipse.jface.text.AbstractDocument.replace
(AbstractDocument.java:1112)
        at 
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace
(PartiallySynchronizedDocument.j
va:111)
        at org.eclipse.jface.text.AbstractDocument.replace
(AbstractDocument.java:1119)
        at 
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace
(PartiallySynchronizedDocument.j
va:102)
        at org.eclipse.text.edits.ReplaceEdit.performDocumentUpdating
(ReplaceEdit.java:81)
        at org.eclipse.text.edits.TextEdit.traverseDocumentUpdating
(TextEdit.java:860)
        at org.eclipse.text.edits.TextEdit.traverseDocumentUpdating
(TextEdit.java:853)
        at org.eclipse.text.edits.TextEditProcessor.executeDo
(TextEditProcessor.java:185)
        at org.eclipse.text.edits.TextEdit.dispatchPerformEdits
(TextEdit.java:700)
        at org.eclipse.text.edits.TextEditProcessor.performEdits
(TextEditProcessor.java:153)
        at org.eclipse.text.edits.TextEdit.apply(TextEdit.java:672)
        at org.eclipse.text.edits.TextEdit.apply(TextEdit.java:696)
        at 
org.eclipse.jdt.internal.ui.text.comment.CommentFormattingStrategy.format
(CommentFormattingStrategy.java:103

        at 
org.eclipse.jface.text.formatter.MultiPassContentFormatter.formatSlave
(MultiPassContentFormatter.java:220)
        at 
org.eclipse.jface.text.formatter.MultiPassContentFormatter.formatSlaves
(MultiPassContentFormatter.java:267)
        at org.eclipse.jface.text.formatter.MultiPassContentFormatter.format
(MultiPassContentFormatter.java:143)
        at org.eclipse.jdt.ui.actions.FormatAllAction.doFormat
(FormatAllAction.java:337)
        at org.eclipse.jdt.ui.actions.FormatAllAction.access$1
(FormatAllAction.java:322)
        at org.eclipse.jdt.ui.actions.FormatAllAction$2.run
(FormatAllAction.java:419)
        at org.eclipse.ui.internal.UILockListener.doPendingWork
(UILockListener.java:150)
        at org.eclipse.ui.internal.UISynchronizer$1.run(UISynchronizer.java:36)
        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:3213)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2859)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block
(ModalContext.java:153)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:303)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run
(ProgressMonitorDialog.java:453)
        at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run
(ProgressMonitorJobsDialog.java:261)
        at org.eclipse.ui.internal.progress.ProgressManager$3.run
(ProgressManager.java:866)
        at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:69)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile
(ProgressManager.java:900)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile
(ProgressManager.java:876)
        at org.eclipse.ui.internal.progress.ProgressManager.run
(ProgressManager.java:1075)
        at org.eclipse.jdt.ui.actions.FormatAllAction.runOnMultiple
(FormatAllAction.java:300)
        at org.eclipse.jdt.ui.actions.FormatAllAction.run
(FormatAllAction.java:276)
        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:544)
        at org.eclipse.jface.action.ActionContributionItem.access$2
(ActionContributionItem.java:494)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent
(ActionContributionItem.java:406)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:896)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3236)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2856)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1774)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1738)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:376)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:106)
        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:165)
        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:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)
Comment 1 Tom Hofmann CLA 2005-11-07 12:27:56 EST
This expression failed:

IRangeComparator left, right...

Assert.isTrue(right.getClass().equals(left.getClass()));


Funny - there are only three IRangeComparator implementation in eclipse:

- DocEquivalenceComparator (the only one being used)
- DocLineComparator (not used - I just deleted it)
- SequenceComparator (only in a test plug-in)

So... no idea how this expression can become false - it never has in about two
years.

Closing as remind - we need a reproducable case.

Comment 2 Tom Hofmann CLA 2005-11-07 12:30:11 EST
Oops, I misread the line numbers... its another assert within the ukkonen
algorithm that fails. We haven't touched that algorithm in years - leaving as
remind.
Comment 3 Dani Megert CLA 2007-06-22 09:59:28 EDT
Get rid of deprecated state.
Comment 4 Dani Megert CLA 2007-06-22 10:04:41 EDT
.