question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

DisposalException: Double release of editor

See original GitHub issue

Version and Environment Details

Operation system: macOS Mojave

IDE name and version: PhpStorm 2019.1 EAP (191.5109.15)

^ does seem to function correctly on current stable release.

Plugin version: 2.0.0-alpha-5

Expected Behaviour

Nothing happens when closing a project.

Actual Behaviour

An exception is throw from the plugin.

Steps to Reproduce / Link to Repo with Reproduction and Instructions

  1. Open a project
  2. Close a project (returning to the project selector)

Logs

Stacktrace

com.intellij.openapi.util.TraceableDisposable$DisposalException: Double release of editor:
	at com.intellij.openapi.util.TraceableDisposable.throwDisposalError(TraceableDisposable.java:101)
	at com.intellij.openapi.editor.impl.EditorImpl.throwDisposalError(EditorImpl.java:988)
	at com.intellij.openapi.editor.impl.EditorImpl.release(EditorImpl.java:995)
	at com.intellij.openapi.editor.impl.EditorFactoryImpl.releaseEditor(EditorFactoryImpl.java:221)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.disposeEditor(TextEditorComponent.java:161)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.dispose(TextEditorComponent.java:116)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.dispose(PsiAwareTextEditorImpl.java:109)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeUnregistered(ObjectTree.java:227)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:153)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:125)
	at com.intellij.ui.content.impl.ContentImpl.dispose(ContentImpl.java:303)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:136)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:162)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:125)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.unregisterToolWindow(ToolWindowManagerImpl.java:1090)
	at com.intellij.lang.jsgraphql.v1.ide.project.toolwindow.JSGraphQLLanguageToolWindowManager.cleanPanel(JSGraphQLLanguageToolWindowManager.java:89)
	at com.intellij.lang.jsgraphql.v1.ide.project.toolwindow.JSGraphQLLanguageToolWindowManager.dispose(JSGraphQLLanguageToolWindowManager.java:83)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:136)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:162)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:125)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$15(ProjectManagerImpl.java:695)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1054)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:689)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:713)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.closeProjectAndShowWelcomeFrameIfNoProjectOpened(CloseProjectWindowHelper.kt:43)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:32)
	at com.intellij.openapi.wm.impl.IdeFrameImpl$3.windowClosing(IdeFrameImpl.java:264)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:350)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.Window.processWindowEvent(Window.java:2054)
	at javax.swing.JFrame.processWindowEvent(JFrame.java:305)
	at java.awt.Window.processEvent(Window.java:2013)
	at java.awt.Component.dispatchEventImpl(Component.java:4899)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4721)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:739)
	at java.awt.EventQueue$4.run(EventQueue.java:737)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:699)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:648)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Creation trace

java.lang.Throwable: 1549458176958
	at com.intellij.openapi.util.TraceableDisposable.<init>(TraceableDisposable.java:44)
	at com.intellij.openapi.editor.impl.EditorImpl.<init>(EditorImpl.java:153)
	at com.intellij.openapi.editor.impl.EditorFactoryImpl.createEditor(EditorFactoryImpl.java:201)
	at com.intellij.openapi.editor.impl.EditorFactoryImpl.createEditor(EditorFactoryImpl.java:156)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.createEditor(TextEditorComponent.java:146)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.<init>(TextEditorComponent.java:83)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.<init>(PsiAwareTextEditorImpl.java:102)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.<init>(PsiAwareTextEditorImpl.java:95)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl.createEditorComponent(PsiAwareTextEditorImpl.java:80)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorImpl.<init>(TextEditorImpl.java:56)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl.<init>(PsiAwareTextEditorImpl.java:38)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorProvider.createEditor(PsiAwareTextEditorProvider.java:35)
	at com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService.createToolWindowResultEditor(JSGraphQLLanguageUIProjectService.java:537)
	at com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService.lambda$null$10(JSGraphQLLanguageUIProjectService.java:599)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:699)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:648)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Kill trace

java.lang.Throwable
	at com.intellij.openapi.util.TraceableDisposable.kill(TraceableDisposable.java:49)
	at com.intellij.openapi.editor.impl.EditorImpl.release(EditorImpl.java:997)
	at com.intellij.openapi.editor.impl.EditorFactoryImpl.releaseEditor(EditorFactoryImpl.java:221)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.disposeEditor(TextEditorComponent.java:161)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.dispose(TextEditorComponent.java:116)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.dispose(PsiAwareTextEditorImpl.java:109)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:136)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:125)
	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:214)
	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:105)
	at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:162)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:125)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$15(ProjectManagerImpl.java:695)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1054)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:689)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:713)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.closeProjectAndShowWelcomeFrameIfNoProjectOpened(CloseProjectWindowHelper.kt:43)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:32)
	at com.intellij.openapi.wm.impl.IdeFrameImpl$3.windowClosing(IdeFrameImpl.java:264)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:350)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
	at java.awt.Window.processWindowEvent(Window.java:2054)
	at javax.swing.JFrame.processWindowEvent(JFrame.java:305)
	at java.awt.Window.processEvent(Window.java:2013)
	at java.awt.Component.dispatchEventImpl(Component.java:4899)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4721)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:739)
	at java.awt.EventQueue$4.run(EventQueue.java:737)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:699)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:648)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:5

github_iconTop GitHub Comments

1reaction
jimkyndemeyercommented, Apr 3, 2019

Fixed in v1.7.4. Awaiting JetBrains approval.

0reactions
cojackcommented, Apr 4, 2019

@jimkyndemeyer thank u a lot!

Read more comments on GitHub >

github_iconTop Results From Across the Web

DisposalException when closing macro expansion popup #8737
TraceableDisposable$DisposalException: Double release of editor: at com.intellij.openapi.util.TraceableDisposable.
Read more >
Editor is already disposed : IDEA-193406 - JetBrains YouTrack
TraceableDisposable$DisposalException: Editor is already disposed. 1. Relates to 3. Relates to 3 issues (2 unresolved) ... on editing teh injected fragment
Read more >
CivicSend and Content Migration to New Editor Release Update
Please Note: The update of CivicSend editors has been delayed. After the release and testing of a few fixes, we will migrate all...
Read more >
The Anatomy of a Press Release
The body of the press release should be double-spaced, so that there is room for the editor to edit. If you write a...
Read more >
An Editor's Advice for Press Release Success
I don't claim to represent all editors across all media platforms and ... Faced with two releases on the same issue (or two...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found