Skip to content

CI: Use Java 26#1912

Open
cstamas wants to merge 2 commits into
apache:masterfrom
cstamas:use-java-26
Open

CI: Use Java 26#1912
cstamas wants to merge 2 commits into
apache:masterfrom
cstamas:use-java-26

Conversation

@cstamas

@cstamas cstamas commented Jun 8, 2026

Copy link
Copy Markdown
Member

Up CI matrix from Java 25 to Java 26.

@cstamas

cstamas commented Jun 8, 2026

Copy link
Copy Markdown
Member Author

@kwin this seems quite consistent: JDK transport UTs fail on Java 26?

@kwin

kwin commented Jun 9, 2026

Copy link
Copy Markdown
Member
Error:  Tests run: 85, Failures: 1, Errors: 0, Skipped: 6, Time elapsed: 4.443 s <<< FAILURE! -- in org.eclipse.aether.transport.jdk.JdkTransporterTest
Error:  org.eclipse.aether.transport.jdk.JdkTransporterTest.testRetryHandler_defaultCount_negative -- Time elapsed: 0.022 s <<< FAILURE!
org.opentest4j.AssertionFailedError: Expected error
	at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
	at org.junit.jupiter.api.Assertions.fail(Assertions.java:138)
	at org.eclipse.aether.transport.jdk.JdkTransporterTest.testRetryHandler_defaultCount_negative(JdkTransporterTest.java:90)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1612)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1612)

Seems some internal retry mechanism has changed in Java 26...

Comment thread .github/workflows/maven-verify.yml
@kwin

kwin commented Jul 2, 2026

Copy link
Copy Markdown
Member

With Java 26 the num of internal retries is 5 times the number of retries controlled via Methanol (=3 by default). Prior Java 26 the internal number of retries was 2... The retry handling got changed in openjdk/jdk@e8db14f#diff-41e3c3f66a6d78612e230f2546ac15e3f82619efe333a731b64f59a9e4991816R613.

@kwin

kwin commented Jul 2, 2026

Copy link
Copy Markdown
Member

Please rebase on top of master now @cstamas.

@cstamas cstamas self-assigned this Jul 8, 2026
@cstamas cstamas changed the title Use Java 26 CI: Use Java 26 Jul 8, 2026
@cstamas cstamas marked this pull request as ready for review July 8, 2026 11:51
@kwin

kwin commented Jul 8, 2026

Copy link
Copy Markdown
Member

Ok, still not working reliably, I would tend to disable the ITs related to retries in JDKTransporter as those are too brittle. WDYT @cstamas ?

@cstamas

cstamas commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

Yup, go for it.

@gnodet gnodet 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.

AI Review — PR #1912: CI: Use Java 26

Hi @cstamas, thanks for keeping CI up to date with the latest JDK!

⚠️ JDK 26 CI jobs are red (medium)

All 6 JDK 26 jobs (ubuntu/windows/macos × Maven 3.9.16/4.0.0-rc-5) are currently failing. The failure is in JdkTransporterTest.testRetryHandler_defaultCount_negative, caused by changed HTTP client retry semantics in Java 26.

A partial fix was merged to master on July 2 ("Limit internal retries to 1 with Java 26+") but @kwin reported on July 8 that it's "still not working reliably" and proposed disabling the brittle retry ITs. You agreed with that approach.

The PR branch appears to be 66 commits behind master and would need:

  1. A rebase onto current master
  2. The agreed-upon retry IT disabling (which hasn't been pushed yet)

Once both are done, CI should go green and this can merge.


🤖 This review was generated by ForgeBot using a maker/checker pattern (reviewer + independent verifier). All findings were independently confirmed.

@gnodet gnodet 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.

Review Summary

The one-line JDK matrix bump from 25 to 26 is the right thing to do, @cstamas, but there are two blockers before this can merge:

CI Failures (confirmed)

All 6 JDK-26 CI matrix entries (ubuntu/windows/macos × Maven 3.9.16/4.0.0-rc-5) are failing. The failure is in JdkTransporterTest.testRetryHandler_defaultCount_negative due to changed HTTP client retry semantics in Java 26 (jdk.httpclient.redirects.retrylimit).

As @kwin identified, the partial fix merged to master (commit f9d2c83) is "still not working reliably." The agreed-upon path forward — disabling the brittle retry ITs — has not yet been applied to this branch.

Branch State (confirmed)

The branch is 8 commits behind master and contains a merge commit (bbd74e75). A rebase is needed both to incorporate the existing retry fixes on master and to align with the project's squash/rebase merge policy. @kwin also requested this in the PR comments.

Suggested Path Forward

  1. Rebase onto current master to pick up the partial retry fix
  2. Push an additional commit that @Disabled-annotates the brittle testRetryHandler_defaultCount_negative test (and any related retry ITs that remain flaky under Java 26)
  3. Verify CI goes green, then merge

This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

Claude Code on behalf of Guillaume Nodet

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants