JetBrains / intellij-platform-gradle-plugin

Gradle plugin for building plugins for IntelliJ-based IDEs
https://plugins.jetbrains.com/docs/intellij/gradle-prerequisites.html
Apache License 2.0
1.43k stars 271 forks source link

com/intellij/execution/impl/DefaultJavaProgramRunner and com/intellij/debugger/impl/GenericDebuggerRunner is invalid in IDEA 2021.2 #788

Closed Nizernizer closed 3 years ago

Nizernizer commented 3 years ago

These two classes are available prior to IDEA version 2021.2. However, an exception may occur after the upgrade to version 2021.2.

build.gradle:

plugins {
    id 'java'
    id 'org.jetbrains.intellij' version '1.1.3'
}

group 'cn.huoxian.dongtai.plugin'
version '1.0'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.0'
    implementation 'org.json:json:20210307'
}

// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij {
    version '2021.2'
    plugins = ['com.intellij.java']
}

test {
    useJUnitPlatform()
}

error logs:

com.intellij.diagnostic.PluginException: Cannot create extension (class=cn.huoxian.dongtai.plugin.runner.RunCodeRunner) [Plugin: cn.huoxian.dongtai.plugin]
    at com.intellij.serviceContainer.ComponentManagerImpl.createError(ComponentManagerImpl.kt:932)
    at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.java:88)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:458)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.access$200(ExtensionPointImpl.java:32)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl$1.next(ExtensionPointImpl.java:365)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:50)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:50)
    at com.intellij.execution.runners.ProgramRunner.getRunner(ProgramRunner.java:43)
    at com.intellij.execution.ExecutorRegistryImpl$RunnerHelper.canRun(ExecutorRegistryImpl.java:436)
    at com.intellij.execution.ExecutorRegistryImpl$ExecutorAction.canRun(ExecutorRegistryImpl.java:258)
    at com.intellij.execution.ExecutorRegistryImpl$ExecutorAction.update(ExecutorRegistryImpl.java:287)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performDumbAwareUpdate$0(ActionUtil.java:130)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:144)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:584)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$updateActionReal$7(ActionUpdater.java:132)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:176)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:133)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:113)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:570)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:414)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:394)
    at com.intellij.util.TimeoutUtil.compute(TimeoutUtil.java:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$25(ActionUpdater.java:393)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1483)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:393)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:469)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:394)
    at com.intellij.util.TimeoutUtil.compute(TimeoutUtil.java:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$25(ActionUpdater.java:393)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1483)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:393)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:230)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$14(ActionUpdater.java:281)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$16(ActionUpdater.java:305)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1078)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$17(ActionUpdater.java:305)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:161)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$18(ActionUpdater.java:301)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:183)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:270)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$19(ActionUpdater.java:300)
    at com.intellij.codeWithMe.ClientId$Companion.withClientId(ClientId.kt:135)
    at com.intellij.codeWithMe.ClientId.withClientId(ClientId.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$20(ActionUpdater.java:298)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
    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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.intellij.diagnostic.PluginException: Cannot load class cn.huoxian.dongtai.plugin.runner.RunCodeRunner (
  error: com/intellij/execution/impl/DefaultJavaProgramRunner,
  classLoader=PluginClassLoader(plugin=PluginDescriptor(name=DongTai IAST, id=cn.huoxian.dongtai.plugin, descriptorPath=plugin.xml, path=~/workspace/github/DongTai-Plugin-IDEA/build/idea-sandbox/plugins/DongTai-Plugin-IDEA, version=2021.2, package=null), packagePrefix=null, instanceId=13, state=active)
)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:409)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:256)
    at com.intellij.serviceContainer.ComponentManagerImplKt.doLoadClass(ComponentManagerImpl.kt:1489)
    at com.intellij.serviceContainer.ComponentManagerImplKt.access$doLoadClass(ComponentManagerImpl.kt:1)
    at com.intellij.serviceContainer.ComponentManagerImpl.loadClass(ComponentManagerImpl.kt:821)
    at com.intellij.openapi.extensions.impl.InterfaceExtensionImplementationClassResolver.resolveImplementationClass(InterfaceExtensionImplementationClassResolver.java:25)
    at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.java:65)
    ... 59 more
Caused by: java.lang.NoClassDefFoundError: com/intellij/execution/impl/DefaultJavaProgramRunner
    at java.base/java.lang.ClassLoader.defineClass2(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1109)
    at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:290)
    at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:121)
    at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:55)
    at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:217)
    at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:176)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:401)
    ... 65 more
Caused by: java.lang.ClassNotFoundException: com.intellij.execution.impl.DefaultJavaProgramRunner PluginClassLoader(plugin=PluginDescriptor(name=DongTai IAST, id=cn.huoxian.dongtai.plugin, descriptorPath=plugin.xml, path=~/workspace/github/DongTai-Plugin-IDEA/build/idea-sandbox/plugins/DongTai-Plugin-IDEA, version=2021.2, package=null), packagePrefix=null, instanceId=13, state=active)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:235)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 73 more
Following exceptions happened soon after this one, most probably they are induced.

2021-09-22T11:33:28.587
com.intellij.diagnostic.PluginException: Cannot create extension (class=cn.huoxian.dongtai.plugin.runner.DebugCodeRunner) [Plugin: cn.huoxian.dongtai.plugin]
    at com.intellij.serviceContainer.ComponentManagerImpl.createError(ComponentManagerImpl.kt:932)
    at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.java:88)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:458)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.access$200(ExtensionPointImpl.java:32)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl$1.next(ExtensionPointImpl.java:365)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:50)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:46)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:50)
    at com.intellij.execution.runners.ProgramRunner.getRunner(ProgramRunner.java:43)
    at com.intellij.execution.ExecutorRegistryImpl$RunnerHelper.canRun(ExecutorRegistryImpl.java:436)
    at com.intellij.execution.ExecutorRegistryImpl$ExecutorAction.canRun(ExecutorRegistryImpl.java:258)
    at com.intellij.execution.ExecutorRegistryImpl$ExecutorAction.update(ExecutorRegistryImpl.java:287)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performDumbAwareUpdate$0(ActionUtil.java:130)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:144)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:584)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$updateActionReal$7(ActionUpdater.java:132)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:176)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:133)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:113)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:570)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:414)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:394)
    at com.intellij.util.TimeoutUtil.compute(TimeoutUtil.java:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$25(ActionUpdater.java:393)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1483)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:393)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:469)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:394)
    at com.intellij.util.TimeoutUtil.compute(TimeoutUtil.java:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$25(ActionUpdater.java:393)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1483)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:393)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:230)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$14(ActionUpdater.java:281)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$16(ActionUpdater.java:305)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1078)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$17(ActionUpdater.java:305)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:161)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$18(ActionUpdater.java:301)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:183)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:270)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$19(ActionUpdater.java:300)
    at com.intellij.codeWithMe.ClientId$Companion.withClientId(ClientId.kt:135)
    at com.intellij.codeWithMe.ClientId.withClientId(ClientId.kt)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$20(ActionUpdater.java:298)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
    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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.intellij.diagnostic.PluginException: Cannot load class cn.huoxian.dongtai.plugin.runner.DebugCodeRunner (
  error: com/intellij/debugger/impl/GenericDebuggerRunner,
  classLoader=PluginClassLoader(plugin=PluginDescriptor(name=DongTai IAST, id=cn.huoxian.dongtai.plugin, descriptorPath=plugin.xml, path=~/workspace/github/DongTai-Plugin-IDEA/build/idea-sandbox/plugins/DongTai-Plugin-IDEA, version=2021.2, package=null), packagePrefix=null, instanceId=13, state=active)
)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:409)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:256)
    at com.intellij.serviceContainer.ComponentManagerImplKt.doLoadClass(ComponentManagerImpl.kt:1489)
    at com.intellij.serviceContainer.ComponentManagerImplKt.access$doLoadClass(ComponentManagerImpl.kt:1)
    at com.intellij.serviceContainer.ComponentManagerImpl.loadClass(ComponentManagerImpl.kt:821)
    at com.intellij.openapi.extensions.impl.InterfaceExtensionImplementationClassResolver.resolveImplementationClass(InterfaceExtensionImplementationClassResolver.java:25)
    at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.java:65)
    ... 59 more
Caused by: java.lang.NoClassDefFoundError: com/intellij/debugger/impl/GenericDebuggerRunner
    at java.base/java.lang.ClassLoader.defineClass2(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1109)
    at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:290)
    at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:121)
    at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:55)
    at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:217)
    at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:176)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:401)
    ... 65 more
Caused by: java.lang.ClassNotFoundException: com.intellij.debugger.impl.GenericDebuggerRunner PluginClassLoader(plugin=PluginDescriptor(name=DongTai IAST, id=cn.huoxian.dongtai.plugin, descriptorPath=plugin.xml, path=~/workspace/github/DongTai-Plugin-IDEA/build/idea-sandbox/plugins/DongTai-Plugin-IDEA, version=2021.2, package=null), packagePrefix=null, instanceId=13, state=active)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:235)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 73 more
YannCebron commented 3 years ago

you must declare dependency on Java plugin since 2019.2 https://plugins.jetbrains.com/docs/intellij/faq.html#unresolved-classes-after-upgrading-to-20192-or-later

Nizernizer commented 3 years ago

you must declare dependency on Java plugin since 2019.2 https://plugins.jetbrains.com/docs/intellij/faq.html#unresolved-classes-after-upgrading-to-20192-or-later

I've already declared that. You can see my build.gradle:

plugins {
    id 'java'
    id 'org.jetbrains.intellij' version '1.1.3'
}

group 'cn.huoxian.dongtai.plugin'
version '1.0'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.0'
    implementation 'org.json:json:20210307'
}

// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij {
    version '2021.2'
    plugins = ['com.intellij.java']
}

test {
    useJUnitPlatform()
}
YannCebron commented 3 years ago

NCDFE error means it's not in the classpath. Please read the guide carefully, it must be declared in plugin.xml as well.

yysimple commented 2 years ago

https://blog.jetbrains.com/platform/2019/06/java-functionality-extracted-as-a-plugin/ This article may help you!!Add java dependencies to plugin.xml!!