eclipse-jdt / eclipse-jdt/eclipse.jdt.core

eclipse hangs when saving a java file

Open
#200 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 12h
Merged PRs (30d)
47

Description

when i saved a file i get a main thread that as hanging, with visual vm i made a couple of stackdumps most of them all all the same:

```
"main" #1 prio=6 os_prio=0 cpu=809437.50ms elapsed=355676.21s tid=0x000002436fa4bff0 nid=0x74bc runnable [0x0000009d30929000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:184)
at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:89)
at org.eclipse.jdt.internal.core.SourceMethod.equals(SourceMethod.java:56)
at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:185)
at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:89)
at org.eclipse.jdt.internal.core.LocalVariable.equals(LocalVariable.java:122)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2000)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.putTreeVal(java.base@17/HashMap.java:2127)
at java.util.HashMap.putVal(java.base@17/HashMap.java:635)
at java.util.HashMap.put(java.base@17/HashMap.java:609)
at org.eclipse.jdt.internal.core.JavaModelCache.putInfo(JavaModelCache.java:244)
at org.eclipse.jdt.internal.core.JavaModelManager.putInfos(JavaModelManager.java:4064)
- locked <0x0000000083a9d840> (a org.eclipse.jdt.internal.core.JavaModelManager)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:620)
at org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:43)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:740)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:806)
at org.eclipse.jdt.internal.core.CompilationUnit.getWorkingCopy(CompilationUnit.java:1041)
at org.eclipse.jdt.internal.core.CompilationUnit.getWorkingCopy(CompilationUnit.java:1007)
at org.eclipse.jdt.internal.corext.util.JavaModelUtil.getStaticImportFavorites(JavaModelUtil.java:1289)
at org.eclipse.jdt.core.manipulation.OrganizeImportsOperation.addStaticImports(OrganizeImportsOperation.java:686)
at org.eclipse.jdt.core.manipulation.OrganizeImportsOperation.createTextEdit(OrganizeImportsOperation.java:599)
at org.eclipse.jdt.internal.corext.fix.ImportsFix.createCleanUp(ImportsFix.java:51)
at org.eclipse.jdt.internal.ui.fix.ImportsCleanUp.createFix(ImportsCleanUp.java:62)
at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.calculateChange(CleanUpRefactoring.java:768)
at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:384)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.run(CompilationUnitDocumentProvider.java:1642)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.notifyPostSaveListeners(CompilationUnitDocumentProvider.java:1636)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1420)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$3.execute(CompilationUnitDocumentProvider.java:1495)
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:110)
at org.eclipse.ui.actions.WorkspaceModifyOperation$$Lambda$1781/0x0000000801d77310.run(Unknown Source)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
- locked <0x00000000aaa13ef8> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
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:764)
at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5001)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1263)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1317)
- locked <0x00000000b90c3bd8> (a org.eclipse.jdt.internal.core.CompilationUnit)
at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7167)
at org.eclipse.ui.Saveable.doSave(Saveable.java:213)
at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:333)
at org.eclipse.ui.internal.SaveableHelper.lambda$1(SaveableHelper.java:196)
at org.eclipse.ui.internal.SaveableHelper$$Lambda$1785/0x0000000801c91328.run(Unknown Source)
at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:271)
at org.eclipse.ui.internal.SaveableHelper$$Lambda$1786/0x0000000801c91548.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:434)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:352)
at org.eclipse.ui.internal.WorkbenchWindow.lambda$7(WorkbenchWindow.java:2345)
at org.eclipse.ui.internal.WorkbenchWindow$$Lambda$1361/0x0000000801ae1ab8.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2343)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:278)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:260)
at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207)
at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150)
at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3799)
at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3812)
at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:82)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at jdk.internal.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@17/Method.java:568)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
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:213)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:580)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:647)
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:89)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1065)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1090)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1075)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1117)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1113)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1542)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4868)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4746)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5026)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3643)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
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$197/0x0000000800e96c28.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:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17/NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@17/Method.java:568)
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)
```

and only 1 of the 6 or so that i took at various times was a bit different:

```
"main" #1 prio=6 os_prio=0 cpu=831171.88ms elapsed=355717.73s tid=0x000002436fa4bff0 nid=0x74bc runnable [0x0000009d30929000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.jdt.internal.core.SourceType.equals(SourceType.java:200)
at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:185)
at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:89)
at org.eclipse.jdt.internal.core.SourceType.equals(SourceType.java:202)
at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:185)
at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:89)
at org.eclipse.jdt.internal.core.SourceMethod.equals(SourceMethod.java:56)
at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:185)
at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:89)
at org.eclipse.jdt.internal.core.LocalVariable.equals(LocalVariable.java:122)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2000)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
at java.util.HashMap$TreeNode.find(java.base@17/HashMap.java:2010)
```

but even after 10 minutes it never came out of that.

i also wonder why that stuff is done in the main thread? shouldn't that be better to move to a worker thread?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.