Community
Participate
Working Groups
If I switch twice the theme from dark to light (Light -> Dark -> Light) Eclipse freezes for a very long time. I frequently have to kill it and start it again: Jstack trace: "main" prio=6 Id=1 RUNNABLE at org.eclipse.swt.internal.gtk.OS.pango_layout_get_line_count(Native Method) at org.eclipse.swt.graphics.TextLayout.getLineCount(TextLayout.java:1014) at org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:1270) at org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:908) at org.eclipse.swt.custom.StyledTextRenderer.calculate(StyledTextRenderer.java:298) at org.eclipse.swt.custom.StyledText.redraw(StyledText.java:7808) at org.eclipse.swt.custom.StyledText.updateCaretVisibility(StyledText.java:11240) at org.eclipse.swt.custom.StyledText.setCaretLocations(StyledText.java:9017) at org.eclipse.swt.custom.StyledText.setCaretLocations(StyledText.java:8911) at org.eclipse.swt.custom.StyledText.setStyleRanges(StyledText.java:10680) at org.eclipse.swt.custom.StyledText.replaceStyleRanges(StyledText.java:8201) at org.eclipse.jface.text.TextViewer.addPresentation(TextViewer.java:4693) at org.eclipse.jface.text.TextViewer.changeTextPresentation(TextViewer.java:4770) at org.eclipse.jface.text.presentation.PresentationReconciler.applyTextRegionCollection(PresentationReconciler.java:562) at org.eclipse.jface.text.presentation.PresentationReconciler.processDamage(PresentationReconciler.java:551) at org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.textChanged(PresentationReconciler.java:215) at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2709) at org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3353) at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingPresenter.highlightingStyleChanged(SemanticHighlightingPresenter.java:441) at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingManager.handlePropertyChangeEvent(SemanticHighlightingManager.java:493) at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingManager.propertyChange(SemanticHighlightingManager.java:460) at org.eclipse.ui.texteditor.ChainedPreferenceStore.firePropertyChangeEvent(ChainedPreferenceStore.java:156) at org.eclipse.ui.texteditor.ChainedPreferenceStore.handlePropertyChangeEvent(ChainedPreferenceStore.java:368) at org.eclipse.ui.texteditor.ChainedPreferenceStore$PropertyChangeListener.propertyChange(ChainedPreferenceStore.java:70) at org.eclipse.ui.preferences.ScopedPreferenceStore$2.run(ScopedPreferenceStore.java:325) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.ui.preferences.ScopedPreferenceStore.firePropertyChangeEvent(ScopedPreferenceStore.java:322) at org.eclipse.ui.preferences.ScopedPreferenceStore.lambda$0(ScopedPreferenceStore.java:171) at org.eclipse.ui.preferences.ScopedPreferenceStore$$Lambda$209/0x0000000000000000.preferenceChange(Unknown Source) at org.eclipse.core.internal.preferences.EclipsePreferences$2.run(EclipsePreferences.java:849) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.preferences.EclipsePreferences.firePreferenceEvent(EclipsePreferences.java:852) at org.eclipse.core.internal.preferences.EclipsePreferences.remove(EclipsePreferences.java:959) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$StylingPreferencesHandler.resetOverriddenPreferences(PartRenderingEngine.java:1443) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$StylingPreferencesHandler.resetOverriddenPreferences(PartRenderingEngine.java:1437) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$StylingPreferencesHandler.handleEvent(PartRenderingEngine.java:1431) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.subscribeCssThemeChanged(PartRenderingEngine.java:380) at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base@16.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@16.0.1/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) at org.eclipse.e4.core.di.internal.extensions.EventObjectSupplier$DIEventHandler.handleEvent(EventObjectSupplier.java:92) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:228) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133) at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75) at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44) at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.sendThemeChangeEvent(ThemeEngine.java:525) at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.setTheme(ThemeEngine.java:504) at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.setTheme(ThemeEngine.java:434) at org.eclipse.ui.internal.dialogs.ViewsPreferencePage.performOk(ViewsPreferencePage.java:268) at org.eclipse.jface.preference.PreferenceDialog$7.run(PreferenceDialog.java:905) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.ui.internal.JFaceUtil$$Lambda$152/0x0000000000000000.run(Unknown Source) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:889) at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(FilteredPreferenceDialog.java:461) at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:233) at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619) at org.eclipse.jface.dialogs.Dialog$$Lambda$663/0x0000000000000000.accept(Unknown Source) at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5126) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4576) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66) at org.eclipse.jface.action.Action.runWithEvent(Action.java:474) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414) at org.eclipse.jface.action.ActionContributionItem$$Lambda$416/0x0000000000000000.handleEvent(Unknown Source) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5126) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4576) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1041) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644) at org.eclipse.ui.internal.Workbench$$Lambda$187/0x0000000000000000.run(Unknown Source) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@16.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base@16.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@16.0.1/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) at org.eclipse.equinox.launcher.Main.run(Main.java:1467) at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
If I close all editors, theme switch is super fast again.
I cannot find changes which may result in this performance regression. Theme switch used to be really fast and may it is super slow. Anyone has an idea why we see this performance regression?
From the stack trace, looks like dup of Bug 579304. *** This bug has been marked as a duplicate of bug 579304 ***
(In reply to Lakshmi P Shanmugam from comment #3) > From the stack trace, looks like dup of Bug 579304. > > *** This bug has been marked as a duplicate of bug 579304 *** Thanks, latest I-build switches fast again.