Community
Participate
Working Groups
I see UI freezes of 500 - 800 ms if the History view switches do to a selection via the Compare editor. Stacktrace from the UI freeze monitor. Stack Trace at org.eclipse.swt.internal.gtk.GTK._gtk_list_store_clear(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_list_store_clear(GTK.java:3905) at org.eclipse.swt.widgets.Table.removeAll(Table.java:2815) at org.eclipse.swt.widgets.Table.remove(Table.java:2689) at org.eclipse.swt.widgets.Table.setItemCount(Table.java:3657) at org.eclipse.jface.viewers.TableViewer.doSetItemCount(TableViewer.java:231) at org.eclipse.jface.viewers.AbstractTableViewer.internalVirtualRefreshAll(AbstractTableViewer.java:646) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:620) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:610) at org.eclipse.jface.viewers.AbstractTableViewer.lambda$0(AbstractTableViewer.java:572) at org.eclipse.jface.viewers.AbstractTableViewer$$Lambda$533.0000000000000000.run(Unknown Source) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1358) at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:572) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:282) at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1631) at org.eclipse.egit.ui.internal.history.GitHistoryPage.clearViewers(GitHistoryPage.java:1805) at org.eclipse.egit.ui.internal.history.GitHistoryPage.lambda$6(GitHistoryPage.java:2511) at org.eclipse.egit.ui.internal.history.GitHistoryPage$$Lambda$2296.0000000000000000.run(Unknown Source) at org.eclipse.egit.core.UnitOfWork.execute(UnitOfWork.java:96) at org.eclipse.egit.ui.internal.history.GitHistoryPage.initAndStartRevWalk(GitHistoryPage.java:2465) at org.eclipse.egit.ui.internal.history.GitHistoryPage.inputSet(GitHistoryPage.java:2089) at org.eclipse.egit.ui.internal.history.GitHistoryPage.inputSet(GitHistoryPage.java:1957) at org.eclipse.team.ui.history.HistoryPage.setInput(HistoryPage.java:54) at org.eclipse.egit.ui.internal.history.GitHistoryPage.setInput(GitHistoryPage.java:1947) at org.eclipse.team.internal.ui.history.GenericHistoryView.getPageRec(GenericHistoryView.java:652) at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:694) at org.eclipse.team.internal.ui.history.GenericHistoryView.showHistoryPageFor(GenericHistoryView.java:628) at org.eclipse.team.internal.ui.history.GenericHistoryView.showHistory(GenericHistoryView.java:899) at org.eclipse.team.internal.ui.history.GenericHistoryView.editorActivated(GenericHistoryView.java:835) at org.eclipse.team.internal.ui.history.GenericHistoryView.partActivated(GenericHistoryView.java:382) at org.eclipse.ui.part.PageBookView$1.partActivated(PageBookView.java:1006) at org.eclipse.ui.internal.WorkbenchPage$4.run(WorkbenchPage.java:4903) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4900) at org.eclipse.ui.internal.WorkbenchPage.access$3(WorkbenchPage.java:4876) at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:216) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$3.run(PartServiceImpl.java:253) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:250) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:774) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:683) at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:97) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.lambda$0(ContributedPartRenderer.java:63) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$$Lambda$377.0000000000000000.handleEvent(Unknown Source) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5741) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:2121) at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:3605) at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:3501) at org.eclipse.swt.widgets.Composite.gtk_button_press_event(Composite.java:839) at org.eclipse.swt.widgets.Canvas.gtk_button_press_event(Canvas.java:159) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2252) at org.eclipse.swt.widgets.Control.windowProc(Control.java:6684) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5982) at org.eclipse.swt.internal.gtk.GTK._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_main_do_event(GTK.java:4168) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1493) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1628) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4491) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:660) at org.eclipse.ui.internal.Workbench$$Lambda$129.0000000000000000.run(Unknown Source) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594) at org.eclipse.equinox.launcher.Main.run(Main.java:1447) at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
(In reply to Lars Vogel from comment #0) > I see UI freezes of 500 - 800 ms if the History view switches do to a > selection via the Compare editor. > History view switches do to a selection via the Compare editor I don't understand this sentence
Sorry. The history view switches input because I open a compare editor for a file which belongs to another Git repository.
I don't see what we could do better in GitHistoryPage.clearViewers(). EGit does viewer.setSelection(StructuredSelection.EMPTY); viewer.setInput(new SWTCommit[0]); with viewer being a TableViewer. The selection is cleared first to avoid that the preservingSelection() does any work, and then we set an empty input. The TableViewer correctly removes all items. If that takes long on GTK, it's an SWT/GTK problem. (It's a virtual table.) Closing as duplicate of bug 550022. *** This bug has been marked as a duplicate of bug 550022 ***
Thanks, Thomas for the answer. Welcome back from vacation.