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

Bug 337782

Summary: Running platform Debug tests logs spurious entries in console
Product: [Eclipse Project] Platform Reporter: Michael Rennie <Michael_Rennie>
Component: DebugAssignee: Pawel Piech <pawel.1.piech>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: pawel.1.piech
Version: 3.7Flags: Michael_Rennie: review+
Target Milestone: 3.7 M6   
Hardware: All   
OS: All   
Whiteboard:

Description Michael Rennie CLA 2011-02-21 21:58:23 EST
Version: 3.7.0
Build id: I20110215-0800

Running the Platform Debug tests on 64 bit Win 7 + 64 bit VM + 64 bit Eclipse, the following exception is always logged to the console:

junit.framework.AssertionFailedError: Redundant update: ILabelUpdate: 1.531
	at junit.framework.Assert.fail(Assert.java:47)
	at org.eclipe.debug.tests.viewer.model.TestModelUpdatesListener.labelUpdateComplete(TestModelUpdatesListener.java:530)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelLabelProvider$3.run(TreeModelLabelProvider.java:487)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelLabelProvider.notifyUpdate(TreeModelLabelProvider.java:474)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelLabelProvider.updateComplete(TreeModelLabelProvider.java:460)
	at org.eclipse.debug.internal.ui.viewers.model.LabelUpdate.update(LabelUpdate.java:158)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelLabelProvider$2.runInUIThread(TreeModelLabelProvider.java:403)
	at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4101)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3718)
	at org.eclipe.debug.tests.viewer.model.LazyTests.testContentRefresh(LazyTests.java:258)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at org.eclipe.debug.tests.viewer.model.LazyTests.runTest(LazyTests.java:86)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:232)
	at junit.framework.TestSuite.run(TestSuite.java:227)
	at junit.framework.TestSuite.runTest(TestSuite.java:232)
	at junit.framework.TestSuite.run(TestSuite.java:227)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
	at org.eclipse.pde.internal.junit.runtime.UITestApplication$1.run(UITestApplication.java:116)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4101)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3718)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2700)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2664)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2498)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.pde.internal.junit.runtime.UITestApplication.start(UITestApplication.java:47)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 1 Pawel Piech CLA 2011-02-22 12:00:59 EST
Hi Mike,
Could you run the test with tracing turned on for debug/viewers/contentProvider, deubg/viewers/updateSequence, debug/viewers/delta?  The trace will be pretty long so please attach it.

Thanks,
Pawel
Comment 2 Michael Rennie CLA 2011-02-23 12:27:01 EST
I tried to take a tracing of the exception, but when I enabled tracing the exception did not occur.
I should also note that the exception is present in the latest I-build console logs for Linux as well.

http://download.eclipse.org/eclipse/downloads/drops/I20110222-0800/testresults/linux.gtk.x86_6.0/org.eclipse.debug.tests.AutomatedSuite.txt
Comment 3 Pawel Piech CLA 2011-02-23 13:09:58 EST
I can't reproduce the problem locally, so it seems I have no choice but to throw stuff at the wall as see what sticks.  

I committed one change in the LazyTests to try to avoid the error, we'll see if it cures the nightly test woes.
Comment 4 Pawel Piech CLA 2011-02-25 13:26:35 EST
I tracked this problem down to incorrect assumptions about label updated by the tests.  Specifically, the label provider can issue multiple sequences of label udpates, even during a single sequence of content updates.  I fixed the tests not to assume a single label update sequence.

Mike, please try the updated tests.
Comment 5 Michael Rennie CLA 2011-02-28 15:28:34 EST
Running the test suite 4 times today I did not see the exceptions.

verified.