Skip to content

UI freeze on code minings repaint in Java editor #3767

@iloveeclipse

Description

@iloveeclipse

I've got UI freeze and had to kill Eclipse after discarding code mining proposal from Copilot in Java editor.

Using latest I20260309-0110 build. CPU usage was high, so I assume it is not the deadlock but livelock.

I can't reproduce so far. Not sure if it is Windows SWT problem, Platform UI problem, JDT problem or Copilot problem, reporting here because it seem originate from jface InlinedAnnotationDrawingStrategy code.

Stack:

"main" #3 [13564] prio=6 os_prio=0 cpu=199515.62ms elapsed=1395.37s tid=0x000001b6eafb49c0 nid=13564 runnable  [0x00000026a84f9000]
   java.lang.Thread.State: RUNNABLE
        at org.eclipse.swt.internal.win32.OS.ScriptGetCMap(Native Method)
        at org.eclipse.swt.graphics.TextLayout.shape(TextLayout.java:3665)
        at org.eclipse.swt.graphics.TextLayout.shape(TextLayout.java:3760)
        at org.eclipse.swt.graphics.TextLayout.computeRuns(TextLayout.java:378)
        at org.eclipse.swt.graphics.TextLayout.getLineCount(TextLayout.java:2051)
        at org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:1347)
        at org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:984)
        at org.eclipse.swt.custom.StyledTextRenderer.calculate(StyledTextRenderer.java:306)
        at org.eclipse.swt.custom.StyledTextRenderer.calculateClientArea(StyledTextRenderer.java:336)
        at org.eclipse.swt.custom.StyledText.resetCache(StyledText.java:7875)
        at org.eclipse.swt.custom.StyledText.setStyleRanges(StyledText.java:10288)
        at org.eclipse.swt.custom.StyledText.setStyleRange(StyledText.java:10120)
        at org.eclipse.jface.text.source.inlined.InlinedAnnotationDrawingStrategy.drawAsLeftOf1stCharacter(InlinedAnnotationDrawingStrategy.java:408)
        at org.eclipse.jface.text.source.inlined.InlinedAnnotationDrawingStrategy.draw(InlinedAnnotationDrawingStrategy.java:330)
        at org.eclipse.jface.text.source.inlined.InlinedAnnotationDrawingStrategy.draw(InlinedAnnotationDrawingStrategy.java:158)
        at org.eclipse.jface.text.source.inlined.InlinedAnnotationDrawingStrategy.draw(InlinedAnnotationDrawingStrategy.java:101)
        at org.eclipse.jface.text.source.AnnotationPainter.drawDecoration(AnnotationPainter.java:1472)
        at org.eclipse.jface.text.source.AnnotationPainter.handleDrawRequest(AnnotationPainter.java:1433)
        at org.eclipse.jface.text.source.AnnotationPainter.paintControl(AnnotationPainter.java:1378)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:272)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4349)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1217)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1241)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1226)
        at org.eclipse.swt.widgets.Composite.WM_PAINT(Composite.java:1536)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:5031)
        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:336)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5117)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3733)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:164)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:360)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:472)
        at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:231)
        at org.eclipse.ui.internal.progress.ProgressManager.lambda$26(ProgressManager.java:823)
        at org.eclipse.ui.internal.progress.ProgressManager$$Lambda/0x000000003da96400.run(Unknown Source)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:853)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:832)
        at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:985)
        at org.eclipse.ui.internal.progress.WorkbenchSiteProgressService.run(WorkbenchSiteProgressService.java:285)
        at org.eclipse.jdt.internal.corext.fix.ImportsFix.runUsingProgressService(ImportsFix.java:93)
        at org.eclipse.jdt.internal.corext.fix.ImportsFix.createCleanUp(ImportsFix.java:63)
        at org.eclipse.jdt.internal.ui.fix.ImportsCleanUp.createFix(ImportsCleanUp.java:62)
        at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.calculateChange(CleanUpRefactoring.java:792)
        at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:389)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.run(CompilationUnitDocumentProvider.java:1610)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.notifyPostSaveListeners(CompilationUnitDocumentProvider.java:1604)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1388)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$3.execute(CompilationUnitDocumentProvider.java:1463)
        at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:133)
        at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:71)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:112)
        at org.eclipse.ui.actions.WorkspaceModifyOperation$$Lambda/0x000000003dcc3400.run(Unknown Source)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2505)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2533)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
        - locked <0x0000000643400000> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
        at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:78)
        at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:67)
        at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:502)
        at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:835)
        at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5311)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1262)
        at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1316)
        - locked <0x000000062e419fe8> (a org.eclipse.jdt.internal.core.CompilationUnit)
        at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7705)
        at org.eclipse.ui.Saveable.doSave(Saveable.java:213)
        at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:315)
        at org.eclipse.ui.internal.SaveableHelper.lambda$1(SaveableHelper.java:195)
        at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x000000003dd71800.run(Unknown Source)
        at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:258)
        at org.eclipse.ui.internal.SaveableHelper$$Lambda/0x000000003dd71c00.run(Unknown Source)
        at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:421)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:344)
        at org.eclipse.ui.internal.WorkbenchWindow.lambda$7(WorkbenchWindow.java:2343)
        at org.eclipse.ui.internal.WorkbenchWindow$$Lambda/0x000000003dac5400.run(Unknown Source)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2340)
        at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:266)
        at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:203)
        at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150)
        at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3814)
        at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3827)
        at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:80)
        at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:277)
        at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:98)
        at java.lang.invoke.LambdaForm$DMH/0x000000003d5b9c00.invokeVirtual(java.base@25.0.2/LambdaForm$DMH)
        at java.lang.invoke.LambdaForm$MH/0x000000003d5c1400.invoke(java.base@25.0.2/LambdaForm$MH)
        at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@25.0.2/Invokers$Holder)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@25.0.2/DirectMethodHandleAccessor.java:158)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@25.0.2/DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke(java.base@25.0.2/Method.java:565)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:237)
        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:484)
        at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:204)
        at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:320)
        at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:580)
        at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:661)
        at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:450)
        at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:104)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
        at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1339)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1216)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1241)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1226)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1268)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1264)
        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1747)
        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:5097)
        at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:341)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:4974)
        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:336)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5117)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3733)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:684)
        at org.eclipse.ui.internal.Workbench$$Lambda/0x000000003c58d800.run(Unknown Source)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:185)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
        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.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@25.0.2/DirectMethodHandle$Holder)
        at java.lang.invoke.LambdaForm$MH/0x000000003c088800.invoke(java.base@25.0.2/LambdaForm$MH)
        at java.lang.invoke.LambdaForm$MH/0x000000003c088c00.invokeExact_MT(java.base@25.0.2/LambdaForm$MH)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@25.0.2/DirectMethodHandleAccessor.java:156)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@25.0.2/DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke(java.base@25.0.2/Method.java:565)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1415)

Metadata

Metadata

Assignees

No one assigned

    Labels

    WindowsHappens on Windows OSbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions