Skip to content

Java 8 Incompatible Reference Check

Tomo Suzuki edited this page Sep 2, 2020 · 9 revisions

(draft)

This job checks the libraries in a BOM do not have class files with Java 8 incompatible references of java.nio.Buffer classes generated by Java 9 compilers.

Given a BOM, the tool performs the following steps:

  1. Resolve the dependency graph for each artifact in the dependencyManagement section of the BOM
  2. Search for the invalid references embed in the class files in the artifacts in the dependency graphs.
  3. Search for the invalid references embed in the class files in the latest version of the artifacts in the dependency graphs.

If it finds any references to the Java core library that are not present in Java 8 runtime, the job fails; otherwise the job succeeds.

Actions upon the Job Failure

Failure at Step 2

If the job finds any invalid references at Step 2, we take the following actions:

After the all dependencies are upgraded to the latest version, the job should succeed.

Failure at Step 3

If the job finds any invalid references at Step 3, but not in Step 2, it means the problematic latest version is not yet part of the dependency graphs of the libraries in the BOM. We take the following actions:

  • We communicate to the library owner to publish a new version with a fix.

  • We communicate to Google Cloud Java client team to wait until the problem is resolved.

After the latest version of the library fixes the problem, the job should succeed.