JetBrains / inspection-plugin

Gradle plugin to launch IDEA inspections
Apache License 2.0
255 stars 27 forks source link

Support multi-module setup #7

Open plastiv opened 5 years ago

plastiv commented 5 years ago

It fails with org.jetbrains.idea.inspections.RunnerException: IDEA system path is already used in current process exception.

Full error message

gw --info --stacktrace inspectionsMain > inspections.log
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/var/folders/ww/cgv63frx1c5fdzpn183d67wc0000gn/T/inspection-plugin/dependencies/ideaIC_2018_2_3/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/spechenizkyi/.gradle/wrapper/dists/gradle-4.10.2-all/9fahxiiecdb76a5g3aw9oi8rv/gradle-4.10.2/lib/gradle-logging-4.10.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError.
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
InspectionPlugin: Analyzing exception
Caused by: org.jetbrains.idea.inspections.RunnerException: IDEA system path is already used in current process
    org.jetbrains.idea.inspections.IdeaRunner.generateSystemPath(IdeaRunner.kt:238)
    org.jetbrains.idea.inspections.IdeaRunner.loadApplication(IdeaRunner.kt:186)
    org.jetbrains.idea.inspections.IdeaRunner.run(IdeaRunner.kt:147)
    org.jetbrains.intellij.tasks.AbstractInspectionsTask$run$inspectionsThread$1.invoke(AbstractInspectionsTask.kt:299)
    org.jetbrains.intellij.tasks.AbstractInspectionsTask$run$inspectionsThread$1.invoke(AbstractInspectionsTask.kt:25)
    kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=3a3d313c-6041-4ecc-a934-7c5d39469cbb, currentDir=/Users/spechenizkyi/Projects/pax-app}
Attempting to read last messages from the daemon log...
Daemon pid: 69487
  log file: /Users/spechenizkyi/.gradle/daemon/4.10.2/daemon-69487.out.log
----- Last  20 lines from daemon log file - daemon-69487.out.log -----
InspectionPlugin: Daemon PID is 69487@sergiis-mbp-2.flixbus.com
InspectionPlugin: Class loader: org.jetbrains.intellij.ChildFirstClassLoader@52e30657
InspectionPlugin: System lock marker.ipl used by current process.
InspectionPlugin: System lock released
InspectionPlugin: Analyzing exception
Caused by: org.jetbrains.idea.inspections.RunnerException: IDEA system path is already used in current process
    org.jetbrains.idea.inspections.IdeaRunner.generateSystemPath(IdeaRunner.kt:238)
    org.jetbrains.idea.inspections.IdeaRunner.loadApplication(IdeaRunner.kt:186)
    org.jetbrains.idea.inspections.IdeaRunner.run(IdeaRunner.kt:147)
    org.jetbrains.intellij.tasks.AbstractInspectionsTask$run$inspectionsThread$1.invoke(AbstractInspectionsTask.kt:299)
    org.jetbrains.intellij.tasks.AbstractInspectionsTask$run$inspectionsThread$1.invoke(AbstractInspectionsTask.kt:25)
    kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
InspectionPlugin: Task execution failure
InspectionPlugin: IDEA shutting down.
InspectionPlugin: Killed current gradle daemon for classpath resetting
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
Using Kotlin incremental compilation
----- End of the daemon log -----

Applied with

subprojects { subProject ->
    afterEvaluate {
        subProject.plugins.apply('org.jetbrains.intellij.inspections')

        subProject.inspections {
            inheritFromIdea = true
            idea.version "ideaIC:2018.2.3"
        }
    }
}
mglukhikh commented 5 years ago

@plastiv Could you please try something like this? Such a configuration worked in another project.

allprojects {
    apply plugin: 'org.jetbrains.intellij.inspections'

    inspections {
        inheritFromIdea = true
        idea.version = "ideaIC:2018.2.3"
    }
}
mglukhikh commented 5 years ago

Anyway, I will investigate this situation, thank you!

mglukhikh commented 5 years ago

I have to say I could not reproduce it yet :( On my examples, this works as it should.

plastiv commented 5 years ago

Ok, I see. I though intelliJ binary is not ready for concurrent execution in general. It could be my project specifics then. I use mixed java/kotlin/android/android-library modules project. Lets see if anyone is using similar setup and having issues as well 👍

mglukhikh commented 5 years ago

Yes, it could be complex in your case. Thanks for information, I will try to reproduce it again.