Closed vlsi closed 4 years ago
Thanks for the bug report. I took your suggestion "a" (only do the error prone check if it's going to be useful). I also added a generic try-catch block around that code that defaults to using error prone javac if the version check fails for any reason. That was a very large hammer for not that large of a nail, but it will definitely prevent any kind of problem like this in the future by forcing a reasonable default.
I released version 0.4.16 of the plugin with the fix. If you don't mind testing it and confirming that it fixes the problem you were actually seeing in practice, I would appreciate it.
Thanks!
The plugin parses the dependency declaration, so it might fail if the version is declared with a constraint (e.g. https://docs.gradle.org/current/userguide/platforms.html)
It would probably be better:
a) Avoid version parsing for
!javaSourceVersion.java8 || !jvmVersion.isJava8()
. The version is needed only to computeneedErrorProneJavac
, and for java!=8 the version of checker does not matter b) Avoid parsing the version. For instance, can you assume that the current versions are good enough, and provide a fallback switch for the old ones? c) Get a version from the dependency resolution rather than from the dependency declaration. For instance, resolve the configuration and figure out version from the resolution result.Testcase:
NPE:
Stacktrace: