Project: Eclipse_Platform_UI
Bug 75440 [Presentations] Closing all editors trigger full reconciliation
Reported: 2004-10-01 06:24:58 | Status: verified fixed

Build 3.1m2 As demonstrated by trace below, closing all Java editors, forces them all to refresh and reconcile for no apparent reason. CompilationUnitProblemFinder.reportProblems(CompilationUnitDeclaration, IProblemRequestor, IProgressMonitor) line: 212 CompilationUnitProblemFinder.process(CompilationUnitDeclaration, ICompilationUnit, char[], Parser, WorkingCopyOwner, IProblemRequestor, IProblemFactory, boolean, IProgressMonitor) line: 181 CompilationUnit.buildStructure(OpenableElementInfo, IProgressMonitor, Map, IResource) line: 149 CompilationUnit(Openable).generateInfos(Object, HashMap, IProgressMonitor) line: 202 CompilationUnit(JavaElement).openWhenClosed(Object, IProgressMonitor) line: 544 BecomeWorkingCopyOperation.executeOperation() line: 38 BecomeWorkingCopyOperation(JavaModelOperation).run(IProgressMonitor) line: 700 BecomeWorkingCopyOperation(JavaModelOperation).runOperation(IProgressMonitor) line: 739 CompilationUnit.becomeWorkingCopy(IProblemRequestor, IProgressMonitor) line: 78 CompilationUnitDocumentProvider.createFileInfo(Object) line: 835 CompilationUnitDocumentProvider(TextFileDocumentProvider).connect(Object) line: 462 CompilationUnitEditor(AbstractTextEditor).doSetInput(IEditorInput) line: 2871 CompilationUnitEditor(StatusTextEditor).doSetInput(IEditorInput) line: 173 CompilationUnitEditor(AbstractDecoratedTextEditor).doSetInput(IEditorInput) line: 1078 CompilationUnitEditor(JavaEditor).internalDoSetInput(IEditorInput) line: 2884 CompilationUnitEditor(JavaEditor).doSetInput(IEditorInput) line: 2862 CompilationUnitEditor.doSetInput(IEditorInput) line: 1486 AbstractTextEditor$15.run(IProgressMonitor) line: 2235 ModalContext.runInCurrentThread(IRunnableWithProgress, IProgressMonitor) line: 322 ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor, Display) line: 269 ApplicationWindow$1.run() line: 624 BusyIndicator.showWhile(Display, Runnable) line: 69 WorkbenchWindow(ApplicationWindow).run(boolean, boolean, IRunnableWithProgress) line: 621 WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress) line: 1919 CompilationUnitEditor(AbstractTextEditor).internalInit(IWorkbenchWindow, IEditorSite, IEditorInput) line: 2249 CompilationUnitEditor(AbstractTextEditor).init(IEditorSite, IEditorInput) line: 2267 EditorManager.createSite(IEditorReference, IEditorPart, EditorDescriptor, IEditorInput) line: 814 EditorManager.openInternalEditor(IEditorReference, EditorDescriptor, IEditorInput, boolean) line: 883 EditorManager.access$12(EditorManager, IEditorReference, EditorDescriptor, IEditorInput, boolean) line: 867 EditorManager$9.run() line: 1085 InternalPlatform.run(ISafeRunnable) line: 616 Platform.run(ISafeRunnable) line: 747 EditorManager.busyRestoreEditor(EditorManager$Editor) line: 1055 EditorManager$8.run() line: 1047 BusyIndicator.showWhile(Display, Runnable) line: 69 EditorManager.restoreEditor(EditorManager$Editor) line: 1045 EditorManager$Editor.getEditor(boolean) line: 1463 EditorManager$Editor.getPart(boolean) line: 1454 EditorPane(PartPane).setVisible(boolean) line: 323 PresentablePart.setVisible(boolean) line: 123 PresentablePartFolder.select(IPresentablePart) line: 266 LeftToRightTabOrder.select(IPresentablePart) line: 65 TabbedStackPresentation.selectPart(IPresentablePart) line: 378 EditorStack(PartStack).refreshPresentationSelection() line: 1025 EditorStack(PartStack).setSelection(LayoutPart) line: 999 EditorStack(PartStack).updateContainerVisibleTab() line: 1223 EditorStack(PartStack).remove(LayoutPart) line: 752 EditorSashContainer.removeEditor(EditorPane) line: 213 EditorAreaHelper.closeEditor(EditorPane) line: 122 EditorAreaHelper.closeEditor(IEditorPart) line: 111 EditorManager.closeEditor(IEditorReference) line: 217 WorkbenchPage.closeEditors(IEditorReference[], boolean) line: 937 WorkbenchPage.closeAllEditors(boolean) line: 880 CloseAllAction.run() line: 78 CloseAllAction(Action).runWithEvent(Event) line: 988 ActionContributionItem.handleWidgetSelection(Event, boolean) line: 555 ActionContributionItem.access$2(ActionContributionItem, Event, boolean) line: 505 ActionContributionItem$6.handleEvent(Event) line: 419 EventTable.sendEvent(Event) line: 82 MenuItem(Widget).sendEvent(Event) line: 796 Display.runDeferredEvents() line: 2783 Display.readAndDispatch() line: 2442 Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1443 Workbench.runUI() line: 1414 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 271 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 144 IDEApplication.run(Object) line: 102 PlatformActivator$1.run(Object) line: 335 EclipseStarter.run(Object) line: 273 EclipseStarter.run(String[], Runnable) line: 129 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 585 Main.basicRun(String[]) line: 185 Main.run(String[]) line: 704 Main.main(String[]) line: 688

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorSashContainer.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/LayoutPart.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PartSashContainer.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PartStack.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewSashContainer.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java