Community
Participate
Working Groups
M20080730-0800 and I20080804-1800. Too many refreshes (12): [pack3.pack8 (not open) [in src1 [in TestProject2]], TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open)] junit.framework.AssertionFailedError: Too many refreshes (12): [pack3.pack8 (not open) [in src1 [in TestProject2]], TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open), TestProject1 (not open)] at org.eclipse.jdt.ui.tests.browsing.PackagesViewContentProviderTests2.assertPack81RefreshedOnce(PackagesViewContentProviderTests2.java:231) at org.eclipse.jdt.ui.tests.browsing.PackagesViewContentProviderTests2.testAddCUFromPackageNotLogicalPackage(PackagesViewContentProviderTests2.java:250) at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24) at junit.extensions.TestSetup$1.protect(TestSetup.java:21) at junit.extensions.TestSetup.run(TestSetup.java:25) at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:354) at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:206) at org.eclipse.test.UITestApplication$3.run(UITestApplication.java:195) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3338) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3067) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.test.UITestApplication.runApplication(UITestApplication.java:138) at org.eclipse.test.UITestApplication.run(UITestApplication.java:60) at org.eclipse.test.UITestApplication.start(UITestApplication.java:210) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 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:386) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212) at org.eclipse.core.launcher.Main.main(Main.java:30)
Markus, please try to reproduce on your Mac. We need to make that test more stable or remove it since it causes noise in the test results.
Could not reproduce, even when doing the wildest dances while the test was running. Released some logging to help us track this down. Please reopen if this happens again.
Failure is back in I20080806-1800.
Happened again in I20080807-1402. Once we have a solution we should backport it to 3.4.1 as well.
Released more logging to stdout and stopped test from failing if additional refreshes occur. Changes in PackagesViewFlatContentProvider, MockPluginView, and PackagesViewContentProviderTests2.
In N20080810-2000, logging showed that the additional refreshes are coming from the CharsetDeltaJob, e.g.: java.lang.Exception: Delta for: TestProject1/src/junit.extensions at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:128) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.LogicalPackagesProvider.elementChanged(LogicalPackagesProvider.java:211) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1562) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1552) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1386) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1362) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1956) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:431) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022) at org.eclipse.core.internal.resources.CharsetDeltaJob.run(CharsetDeltaJob.java:162) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) java.lang.Exception: postRefresh: TestProject1 (not open) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.postRefresh(PackagesViewFlatContentProvider.java:278) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:176) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processAffectedChildren(PackagesViewFlatContentProvider.java:210) at org.eclipse.jdt.internal.ui.browsing.PackagesViewFlatContentProvider.processDelta(PackagesViewFlatContentProvider.java:181) at org.eclipse.jdt.internal.ui.browsing.LogicalPackagesProvider.elementChanged(LogicalPackagesProvider.java:211) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1562) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1552) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1386) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1362) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1956) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:431) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022) at org.eclipse.core.internal.resources.CharsetDeltaJob.run(CharsetDeltaJob.java:162) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Opened bug 243912 for the unexpected refreshes from the CharsetDeltaJob. Steps to reproduce: - breakpoint at last statement of PackagesViewContentProviderTests2.testRemoveCUFromPackageNotLogicalPackage() - breakpoint before "fMyPart.pushDisplay();" in PackagesViewContentProviderTests2.testAddCUFromPackageNotLogicalPackage() - debug PackagesViewContentProviderTests2 - when breakpoint is hit, add breakpoint at start of CharsetDeltaJob.run(IProgressMonitor) - resume once - when breakpoint in CharsetDeltaJob is hit, resume that worker thread - step in main thread to see how too many refreshes have been logged A workaround could be to sleep for 1 second at the beginning of testAddCUFromPackageNotLogicalPackage() and then call "fMyPart.pushDisplay();".
Released a workaround to HEAD and 3.4.1: Wait for 1s after deleting projects (in tearDown, since this affects all tests).
Verified in code and in latest builds.