Community
Participate
Working Groups
N20110303-2000 Endless loop in TextMergeViewer.internalGetNextDiff. I can't tell exactly what steps I did, but here's what I remember: - opened WorkingSetModel.java in Java editor - opened incoming change in WorkingSetModel.java in compare editor - in Synchronize view, chose "Update" - selected the Java editor - performed some manual changes - performed Undo a few times to get rid of the changes - was puzzled that the Java editor was still dirty - closed the Java editor => this brought me back to the compare editor, where the endless loop below was entered I had to kill the Eclipse process. "main" prio=6 tid=0x003db000 nid=0x18b0 runnable [0x0047e000] java.lang.Thread.State: RUNNABLE at org.eclipse.compare.internal.merge.DocumentMerger.findNext(DocumentMerger.java:1347) at org.eclipse.compare.internal.merge.DocumentMerger.findNext(DocumentMerger.java:1339) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.findNext(TextMergeViewer.java:4382) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.internalGetNextDiff(TextMergeViewer.java:4251) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.getNextVisibleDiff(TextMergeViewer.java:4235) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.isNavigationButtonEnabled(TextMergeViewer.java:3370) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateControls(TextMergeViewer.java:3354) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.setCurrentDiff(TextMergeViewer.java:4436) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.setCurrentDiff(TextMergeViewer.java:4395) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.handleSelectionChanged(TextMergeViewer.java:3249) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$58(TextMergeViewer.java:3245) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$25.keyPressed(TextMergeViewer.java:2455) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:167) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1809) at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4864) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4543) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4970) at org.eclipse.swt.internal.win32.OS.$$YJP$$CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(OS.java) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2418) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.$$YJP$$DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(OS.java) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2524) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3737) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
I guess you were comparing 1.41 vs 1.42 of WorkingSetModel.java, right? I'm trying to increase my chances of reproducing the issue...
> I guess you were comparing 1.41 vs 1.42 of WorkingSetModel.java, right? Yes, 1.41 in Workspace and 1.42 incoming.
(In reply to comment #0) > I can't tell exactly what steps I did, but here's what I remember: > - opened WorkingSetModel.java in Java editor > - opened incoming change in WorkingSetModel.java in compare editor > - in Synchronize view, chose "Update" This should close the compare editor, so I guess what you actually did was "Copy all non-conflicting changes", could that be true? > - selected the Java editor > - performed some manual changes > - performed Undo a few times to get rid of the changes > - was puzzled that the Java editor was still dirty Have you done any saves until this point? > - closed the Java editor If the editor was dirty should be asked to save it or not, do you remember what option did you choose? > => this brought me back to the compare editor, where the endless loop below was > entered
(In reply to comment #3) Sorry, it was already a bit late, and I really can't tell the steps more exactly any more. It's well possible that I used "Copy all non-conflicting changes". I don't think I performed Save. That's why I was puzzled that the Java editor was still dirty after I undid everything. Looking at the code, I don't see recent changes in that area. Reducing severity, since this doesn't seem to be new nor a common problem. I could not reproduce the problem. I guess the best way to proceed would be to analyze the loops carefully and make sure they terminate eventually.
*** Bug 509626 has been marked as a duplicate of this bug. ***
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug. If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie.