objectionary / objectionary/lints
`java-17-plus` profile in `pom.xml` incorrectly loads Error Prone version requiring Java 21
@yegor256 is already working on this.
Since Sep 15, 2026.
- Dominant language
- Java
- Stars
- 14
- Forks
- 39
- Avg merge
- 22h 54m
- Merged PRs (30d)
- 90
Description
The java-17-plus profile in pom.xml:520 activates on <jdk>[17,)</jdk> and puts -Xplugin:ErrorProne on the javac command line, pulling error_prone_core 2.50.0 from pom.xml:555. The classes in that jar, ErrorProneJavacPlugin.class among them, are compiled to class file version 65, which is Java 21. On JDK 17 or 18 through 20 the profile switches on but javac cannot load the plugin, so compile fails before any source file is touched, with nothing but a defineClass1 stack trace.
This contradicts README.md:184-188, which asks for "Java 11+" and says error-prone runs with "Java 17+". A contributor who follows the README on JDK 17 cannot run mvn clean install -Pqulice at all. Switching the profile off by hand does not rescue them either: src/test/java/fixtures/FixPack.java:90 casts this.pack.get("sheets") from Object to List<String> unchecked, and with failOnWarning set that warning becomes a compilation error in testCompile.
Changing the activation to <jdk>[21,)</jdk> and the README line to "Java 21+" makes the promise match the plugin. The cast in FixPack.java:90 should also go, so the build compiles cleanly whenever the profile is off.
@yegor256
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.