Community
Participate
Working Groups
After starting Eclipse, I tried to expand a project in the Packages Explorer. The expansion was blocked so I got the blocked dialog. I clicked on the button to cancel the expansion and an exception was logged. First of all, I wouldn't expect that expanding a project would need to obtain a scheduling rule. I would expect it to show me what it can at the time and then refresh when additional information become available. Also, I wouldn't expect to get an exception logged for performing a cancel. Here's the trace: org.eclipse.core.runtime.OperationCanceledException at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:168) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:87) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:226) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1745) at org.eclipse.core.internal.resources.Project.touch(Project.java:1031) at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:115) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1798) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:784) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:4174) at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:33) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2068) at org.eclipse.jdt.internal.core.JavaModelManager$9.run(JavaModelManager.java:2014) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1798) at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:2023) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1415) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1517) at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2550) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1853) at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:202) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:717) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1798) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:784) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:4174) at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize(JREContainerInitializer.java:69) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2068) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1417) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1517) at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2550) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1853) at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:386) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:229) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:505) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:249) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:235) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:190) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:1706) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getPackageFragmentRoots(PackageExplorerContentProvider.java:287) at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getChildren(StandardJavaElementContentProvider.java:178) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getChildren(PackageExplorerContentProvider.java:270) at org.eclipse.jdt.internal.ui.packageview.WorkingSetAwareContentProvider.getChildren(WorkingSetAwareContentProvider.java:87) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1283) at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:394) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.getFilteredChildren(ProblemTreeViewer.java:205) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:580) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:774) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:751) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:526) at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1370) at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:781) at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1381) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:125) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947) at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:6656) at org.eclipse.swt.widgets.Control.wmNotify(Control.java:4365) at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1489) at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4018) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3526) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4159) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2114) at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1382) at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:5475) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3507) at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5062) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4172) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2200) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3102) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2264) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2228) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2103) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:457) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:452) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:101) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:146) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169) 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:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:476) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:416) at org.eclipse.equinox.launcher.Main.run(Main.java:1124) at org.eclipse.equinox.launcher.Main.main(Main.java:1099)
In our discussions here we concluded that the correct behaviour on a cancel while expanding is to keep the node collapsed. This has to be implemented by JFace. Currently, viewers become stale: Bug 92347. *** This bug has been marked as a duplicate of bug 92347 ***