Skip to content

[#201] Set up the JDK of the release for the CodeQL Java analysis, so that its results no longer follow the default JDK of the runner image - #202

Open
vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:fix/201-codeql-jdk
Open

vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:fix/201-codeql-jdk

Conversation

@vharseko

Copy link
Copy Markdown
Member

Fixes #201

Problem

The java-kotlin job of the CodeQL workflow runs with build-mode: none and sets up no JDK. CodeQL infers no JDK from the project (No specific JDK inferred from the project being analysed; using the java on the PATH), so it models the JDK API on the default java of the runner image. On 2026-10-19 ubuntu-latest moved from ubuntu-24.04 to ubuntu-26.04, and that java changed from 17 to 25. Code scanning then opened alerts for APIs deprecated only after Java 11, the version the release is built with. The details are in #201.

Fix

  • .github/dependabot.yml labels the github-actions pull requests ci and dependencies, as in OpenAM, OpenDJ and OpenIDM.
  • Before Initialize CodeQL, the java-kotlin job sets up the JDK that the release is built with, with the actions/setup-java parameters of release.yml: temurin, 8 on sustaining/1.8.x and 11 otherwise. The branch is taken from github.base_ref for a pull request and from github.ref_name for a push.
  • The commented-out JDK step of the manual build section is removed. If that build is turned on, the new step serves it.

The other languages do not use the step. The same change for OpenDJ is OpenIdentityPlatform/OpenDJ#1232.

Test

The change only takes effect in a CodeQL run, so the CodeQL run of this PR is the test. The java-kotlin job log must show Java version: 11... from Eclipse Adoptium, where master shows Java version: 25.0.4.1.

A pull request analysis only reports results on the changed lines, so it cannot show the alerts going away. They are closed by the first analysis of master after the merge.

…dependencies, as in the other projects

The github-actions updates of OpenAM, OpenDJ and OpenIDM are labelled ci
and dependencies. The ones of this repository had no labels.
…QL Java analysis, so that its results no longer follow the default JDK of the runner image

Fixes OpenIdentityPlatform#201

With build-mode 'none' CodeQL infers no JDK from the project and models
the JDK API on the java found on the PATH. When ubuntu-latest moved to
ubuntu-26.04 on 2026-10-19 that java became 25 instead of 17, and code
scanning opened alerts for APIs deprecated only after Java 11, the
version the release is built with.

The java-kotlin job now sets up the JDK of the release before Initialize
CodeQL, with the setup-java parameters of release.yml: temurin, 8 on
sustaining/1.8.x and 11 otherwise.

The commented-out JDK step of the manual build is gone, since the step
now serves it too.
@vharseko vharseko added bug Something isn't working dependencies Pull requests that update a dependency file security Security fix / CVE remediation ci CI, build & workflow changes labels Oct 22, 2026
@vharseko
vharseko requested a review from maximthomas October 22, 2026 10:28

@maximthomas maximthomas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

praise: The JDK pin sits exactly where the alerts come from, and the PR's own run proves it took effect.

  • The Set up JDK step runs before Initialize CodeQL and only for matrix.language == 'java-kotlin' (.github/workflows/codeql.yml:79-84); the PR's java-kotlin job logs [autobuild] Java version: 11.0.32.1, vendor: Eclipse Adoptium and "using the java on the PATH", where master logged 25.0.4.1.
  • The description states the limit of its own test: a diff-scoped PR analysis cannot show the master alerts closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci CI, build & workflow changes dependencies Pull requests that update a dependency file security Security fix / CVE remediation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CodeQL: the Java analysis takes its JDK from the runner image, which moved from Java 17 to 25 with ubuntu-26.04

2 participants