-
-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Check for before destorying CSharpierProcessPipeMultipleFiles.java #682
Conversation
Thanks for the bug fix! I'll get a new version submitted to jetbrains this weekend. |
After looking at this more today, I think something must be failing in the constructor which causes process to be null when CSharpierProcessPipeMultipleFiles is destroyed. Most likely it is failing to start csharpier. |
To see the logs
|
The csharpier plugin installs itself into another location to avoid some issues if you were to try to update/uninstall csharpier while the plugin is open.
I will create a new issue to update the plugins to detect this condition and hopefully recover from it, or at least notify the user of the problem |
So, is this still needed? Should we merge it? Or should we close it? |
The null check is still valid, I already released a version with this code. I was leaving this open for help troubleshooting but we can close it. |
I get the following exception below when trying to run the Rider plugin. This PR should fix it
java.lang.NullPointerException at com.intellij.csharpier.CSharpierProcessPipeMultipleFiles.dispose(CSharpierProcessPipeMultipleFiles.java:84) at com.intellij.csharpier.CSharpierProcessProvider.killRunningProcesses(CSharpierProcessProvider.java:209) at com.intellij.csharpier.CSharpierProcessProvider.dispose(CSharpierProcessProvider.java:201) at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:139) at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:169) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:219) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:207) at com.intellij.serviceContainer.ComponentManagerImpl.dispose(ComponentManagerImpl.kt:1122) at com.intellij.openapi.project.impl.ProjectExImpl.dispose(ProjectExImpl.kt:266) at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:139) at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:169) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:219) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:207) at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$4(ProjectManagerImpl.java:387) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1015) at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$5(ProjectManagerImpl.java:370) at com.intellij.openapi.util.ShutDownTracker.executeWithStopperThread(ShutDownTracker.java:114) at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:351) at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:403) at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.closeProjectAndShowWelcomeFrameIfNoProjectOpened(CloseProjectWindowHelper.kt:53) at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:41) at com.intellij.openapi.wm.impl.ProjectFrameHelper$2.windowClosing(ProjectFrameHelper.java:232) at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357) at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357) at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357) at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357) at java.desktop/java.awt.Window.processWindowEvent(Window.java:2099) at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298) at java.desktop/java.awt.Window.processEvent(Window.java:2058) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2793) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:119) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)