Skip to content

Upgrade Java version to 27 in build workflow - #255

Merged
vharseko merged 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:upgrade-java-27
Oct 13, 2026
Merged

vharseko merged 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:upgrade-java-27

Conversation

@vharseko

Copy link
Copy Markdown
Member

Updated Java version from 26 to 27 in build matrix.

@vharseko vharseko added ci CI/CD, build and release workflows jdk-support JDK / Java version compatibility labels Oct 11, 2026
Updated Java version from 26 to 27 in build matrix.
ASM 9.9.1 reads class files only up to major version 70 (Java 26).
On JDK 27 SPI Fly fails to weave slf4j-api, which then binds to the NOP
logger, so OpenIDM logs nothing and "OpenIDM ready" never reaches
openidm0.log.0.

Also fail the Windows start-up test when "OpenIDM ready" is missing:
findstr's exit code alone does not fail a PowerShell step, which let the
windows-latest/27 job pass with the same problem.
@vharseko
vharseko requested a review from maximthomas October 11, 2026 20:33
@vharseko vharseko added the dependencies Pull requests that update a dependency file label Oct 11, 2026
@vharseko
vharseko merged commit ea29353 into OpenIdentityPlatform:master Oct 13, 2026
31 checks passed
@vharseko
vharseko deleted the upgrade-java-27 branch October 13, 2026 07:54

@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 ASM bump is what makes JDK 27 work, and the matrix moves consistently.

  • asm.version 9.11 (pom.xml:132) is the real fix. In run 38152659213, windows-latest/27 booted with org.ow2.asm.asm-9.9.1.jar and never logged "OpenIDM ready". At this head the same leg boots with asm-9.11.jar and logs INFO: OpenIDM ready.
  • 26 → 27 is changed in every matrix (build.yml:31, :39, :43, :135), and the min/max comment at :33 is updated to match.

issue (blocking): The new $LASTEXITCODE check in "Test on Windows" cannot catch a missing "OpenIDM ready", because findstr "OpenIDM ready" matches "OpenIDM" OR "ready".

.github/workflows/build.yml:103-108

Unless the string is passed with /C:, findstr treats space-separated words as alternatives. It exits 0 on any line that contains "OpenIDM", and openidm0.log.0 always contains the install path (D:\a\OpenIDM\OpenIDM\openidm\db\...). That is why windows-latest/27 passed in run 38152659213 even though the log had no "OpenIDM ready". At this head $LASTEXITCODE is still 0 on such a boot, so both Windows legs would still pass it. The comment's premise is also wrong: the runner appends if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } to every pwsh step, and no native command runs after findstr, so a real findstr miss already failed the step.

          type logs\openidm0.log.0
          if (-not (Select-String -Path logs\openidm0.log.0 -Pattern 'OpenIDM ready' -SimpleMatch -CaseSensitive -Quiet)) {
            Write-Host "OpenIDM ready not found in openidm0.log.0"
            exit 1
          }

Or: keep the current if block, change the line to findstr /C:"OpenIDM ready" logs\openidm0.log.0, and replace the comment with the reason /C: is needed.

Moved to #256


note (non-blocking): A change outside the scope stated in the description, which mentions only the JDK matrix:

  • pom.xml:132: asm.version 9.9.1 → 9.11 changes the shipped org.ow2.asm bundles. The reason is given only in the message of commit 592cf8b; a line in the description would help.

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

Labels

ci CI/CD, build and release workflows dependencies Pull requests that update a dependency file jdk-support JDK / Java version compatibility

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants