dkandalov / live-plugin

IntelliJ plugin for writing IntelliJ plugins at runtime ⚡️
https://plugins.jetbrains.com/plugin/7282
Apache License 2.0
858 stars 67 forks source link

"Write access is allowed from write thread only" Error on startup #113

Closed BobKerns closed 4 years ago

BobKerns commented 4 years ago

Versions: 2020.1.3 and 2020.1.4 (in 2020.2 it prevents the IDE from starting, which may be a separate problem).

On startup, I got the following error:

Write access is allowed from write thread only

com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide.IdeEventQueue@1748a915 Current thread: Thread[ApplicationImpl pooled thread 6,4,Idea Thread Group] 1014508564 Write thread (volatile): Thread[AWT-EventQueue-0,6,Idea Thread Group] 799072419com.intellij.openapi.diagnostic.Attachment@18877834 at com.intellij.openapi.application.impl.ApplicationImpl.assertIsWriteThread(ApplicationImpl.java:1068) at com.intellij.openapi.application.impl.ApplicationImpl.startWrite(ApplicationImpl.java:1154) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:974) at liveplugin.toolwindow.util.Plugins_ioKt.runIOAction(plugins-io.kt:32) at liveplugin.toolwindow.util.Plugins_ioKt.createFile(plugins-io.kt:13) at liveplugin.toolwindow.util.ExamplePluginInstaller.installPlugin(ExamplePluginInstaller.kt:16) at liveplugin.LivePluginAppComponent$Companion.installHelloWorldPlugins(LivePluginAppComponent.kt:171) at liveplugin.LivePluginAppComponent$Companion.access$installHelloWorldPlugins(LivePluginAppComponent.kt:63) at liveplugin.LivePluginAppComponent.appFrameCreated(LivePluginAppComponent.kt:55) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:546) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:139) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:465) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:426) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:415) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:397) at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$3(MessageBusImpl.java:237) at com.sun.proxy.$Proxy42.appFrameCreated(Unknown Source) at com.intellij.idea.IdeStarter.main(IdeStarter.kt:103) at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:222) at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610) at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1085) at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)

dkandalov commented 4 years ago

Thanks a lot for reporting the issue. I just published version 0.6.7 which should fix this.

I think it was only happening on a fresh liveplugin installation and was a combination of changes in the plugin and IntelliJ.

BobKerns commented 4 years ago

Looks good! Thanks!