Repository navigation
Upgrade Java version to 27 in build workflow - #255
Conversation
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.
409b193 to
592cf8b
Compare
There was a problem hiding this comment.
praise: The ASM bump is what makes JDK 27 work, and the matrix moves consistently.
asm.version9.11 (pom.xml:132) is the real fix. In run 38152659213, windows-latest/27 booted withorg.ow2.asm.asm-9.9.1.jarand never logged "OpenIDM ready". At this head the same leg boots withasm-9.11.jarand logsINFO: OpenIDM ready.- 26 → 27 is changed in every matrix (
build.yml:31,:39,:43,:135), and the min/max comment at:33is 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.version9.9.1 → 9.11 changes the shippedorg.ow2.asmbundles. The reason is given only in the message of commit 592cf8b; a line in the description would help.
Updated Java version from 26 to 27 in build matrix.