Hello, after upgrading to eclipse 2025-03, I’ve had performance issues that took me some time to debug.
From a brand-new installation & workspace, 9 times out of 10 when I save a file my UI freezes for 1~10s.
Enabling the UI Freeze Detector gave me the following 2 stacks:
at java.base@21.0.6/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@21.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
at java.base@21.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
at java.base@21.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
at java.base@21.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
at java.base@21.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1712)
at java.base@21.0.6/java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:420)
at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:40)
at org.gradle.tooling.internal.consumer.DefaultModelBuilder.get(DefaultModelBuilder.java:50)
at org.sonarlint.eclipse.buildship.internal.GradleUtils.getProjectConnection(GradleUtils.java:229)
at org.sonarlint.eclipse.buildship.internal.GradleUtils.getExclusions(GradleUtils.java:179)
at org.sonarlint.eclipse.buildship.internal.GradleProjectConfigurationExtension.getExclusions(GradleProjectConfigurationExtension.java:85)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.getExclusions(FileSystemSynchronizer.java:359)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.visitDeltaPostChange(FileSystemSynchronizer.java:210)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.lambda$0(FileSystemSynchronizer.java:83)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer$$Lambda/0x0000713e951cccc0.visit(Unknown Source)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:61)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.resourceChanged(FileSystemSynchronizer.java:83)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:465)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1593)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2471)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:76)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:66)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:461)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:783)
at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5020)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1262)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1316)
at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7260)
at org.eclipse.ui.Saveable.doSave(Saveable.java:213)
at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:317)
at org.eclipse.ui.internal.SaveableHelper.lambda$1(SaveableHelper.java:195)
at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x0000713e951f4000.run(Unknown Source)
at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:261)
at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x0000713e951f4218.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:434)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:354)
at org.eclipse.ui.internal.WorkbenchWindow.lambda$7(WorkbenchWindow.java:2335)
at org.eclipse.ui.internal.WorkbenchWindow$$Lambda/0x0000713e951f4430.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2332)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:268)
at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:206)
at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150)
at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3819)
at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3832)
at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:81)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:277)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:98)
at java.base@21.0.6/java.lang.invoke.LambdaForm$DMH/0x0000713e94ed0000.invokeVirtual(LambdaForm$DMH)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e951e5400.invoke(LambdaForm$MH)
at java.base@21.0.6/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:157)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:299)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:233)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:174)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:165)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:204)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:569)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:644)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:439)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1961)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1651)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1678)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1661)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1700)
at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:996)
at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3999)
at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:931)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2630)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:6842)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6169)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1605)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4521)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:668)
at org.eclipse.ui.internal.Workbench$$Lambda/0x0000713e9427d7d0.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:576)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:178)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base@21.0.6/java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(DirectMethodHandle$Holder)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e94006800.invoke(LambdaForm$MH)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e94006c00.invokeExact_MT(LambdaForm$MH)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:155)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670)
at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:607)
at app//org.eclipse.equinox.launcher.Main.run(Main.java:1492)
at app//org.eclipse.equinox.launcher.Main.main(Main.java:1465)
at java.base@21.0.6/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@21.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
at java.base@21.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
at java.base@21.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
at java.base@21.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
at java.base@21.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1712)
at java.base@21.0.6/java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:420)
at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:40)
at org.gradle.tooling.internal.consumer.DefaultModelBuilder.get(DefaultModelBuilder.java:50)
at org.sonarlint.eclipse.buildship.internal.GradleUtils.getExclusions(GradleUtils.java:193)
at org.sonarlint.eclipse.buildship.internal.GradleProjectConfigurationExtension.getExclusions(GradleProjectConfigurationExtension.java:85)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.getExclusions(FileSystemSynchronizer.java:359)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.visitDeltaPostChange(FileSystemSynchronizer.java:210)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.lambda$0(FileSystemSynchronizer.java:83)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer$$Lambda/0x0000713e951cccc0.visit(Unknown Source)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:87)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:61)
at org.sonarlint.eclipse.core.internal.backend.FileSystemSynchronizer.resourceChanged(FileSystemSynchronizer.java:83)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:465)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1593)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2471)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2482)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:76)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:66)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:461)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:783)
at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5020)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1262)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1316)
at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7260)
at org.eclipse.ui.Saveable.doSave(Saveable.java:213)
at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:317)
at org.eclipse.ui.internal.SaveableHelper.lambda$1(SaveableHelper.java:195)
at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x0000713e951f4000.run(Unknown Source)
at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:261)
at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x0000713e951f4218.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:434)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:354)
at org.eclipse.ui.internal.WorkbenchWindow.lambda$7(WorkbenchWindow.java:2335)
at org.eclipse.ui.internal.WorkbenchWindow$$Lambda/0x0000713e951f4430.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2332)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:268)
at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:206)
at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150)
at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3819)
at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3832)
at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:81)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:277)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:98)
at java.base@21.0.6/java.lang.invoke.LambdaForm$DMH/0x0000713e94ed0000.invokeVirtual(LambdaForm$DMH)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e951e5400.invoke(LambdaForm$MH)
at java.base@21.0.6/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:157)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:299)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:233)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:174)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:165)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:204)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:569)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:644)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:439)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1961)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1651)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1678)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1661)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1700)
at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:996)
at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3999)
at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:931)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2630)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:6842)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6169)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1605)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4521)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:668)
at org.eclipse.ui.internal.Workbench$$Lambda/0x0000713e9427d7d0.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:576)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:178)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base@21.0.6/java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(DirectMethodHandle$Holder)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e94006800.invoke(LambdaForm$MH)
at java.base@21.0.6/java.lang.invoke.LambdaForm$MH/0x0000713e94006c00.invokeExact_MT(LambdaForm$MH)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:155)
at java.base@21.0.6/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670)
at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:607)
at app//org.eclipse.equinox.launcher.Main.run(Main.java:1492)
at app//org.eclipse.equinox.launcher.Main.main(Main.java:1465)
After a quick search on this forum, I found: Eclipse hangs org.sonarlint.eclipse.buildship.internal.GradleUtils that was about the same issue.
However no fix or explanation was provided, apart for the exclusion option that has been added. I quickly tried the opt-out feature and it seems to fix the issue. However the opt-out seem to be only per-project (no global configuration) and as I have 100+ projects, periodically regenerated via gradle, I can’t possibly re-set this option every time on every projects.
I tried to extract some sonarqube logs after a freeze, but I was no able to take it all due to the sheer quantity : https://stuff.stooit.com/d/1/67fd025cad106/sonarlintlogs.txt
Some context:
- I’m using eclipse 2025-03 up-to-date
- Sonarlint 11.4.0 with no server
- 100+ projects in eclipse, all using gradle & buildship eclipse
- most projects are Java 21, some are Java 11
- I don’t know if this matters at all or not, but we’re using org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2 in gradle
Thanks