objectionary / objectionary/lints

`java-17-plus` profile in `pom.xml` incorrectly loads Error Prone version requiring Java 21

Open
#1,444 0 comments 0 reactions 1 assignee View on GitHub

@yegor256 is already working on this.

Since Sep 15, 2026.

bug good-title
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.