Skip to content

Migrate to Markdown Javadoc for assertj-guava - #4298

Merged
scordio merged 16 commits into
3.xfrom
guava-javadoc-markdown
Sep 26, 2026
Merged

scordio merged 16 commits into
3.xfrom
guava-javadoc-markdown

Conversation

@scordio

@scordio scordio commented Jun 21, 2026 •

Copy link
Copy Markdown
Member

This migrates the assertj-guava Javadoc to Markdown syntax.

The migration was done by executing the OpenRewrite JavadocToMarkdownDocComment recipe:

./mvnw -f assertj-guava/pom.xml -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE --define rewrite.activeRecipes=org.openrewrite.java.migrate.lang.JavadocToMarkdownDocComment --define rewrite.exportDatatables=true

This PR also moves the existing content of CLAUDE.md to a vendor-neutral AGENTS.md (supported by Copilot Code Review) and adds Javadoc-specific instructions.

Relates to:

Blocked by:

@scordio scordio added this to the 3.x milestone Jun 21, 2026
@scordio
scordio force-pushed the guava-javadoc-markdown branch 2 times, most recently from b464516 to 56a1296 Compare June 23, 2026 18:44
@scordio
scordio force-pushed the guava-javadoc-markdown branch 3 times, most recently from a27e038 to ce39f1f Compare July 1, 2026 21:45
@scordio
scordio marked this pull request as ready for review July 1, 2026 21:55
@scordio
scordio requested a review from Copilot July 1, 2026 21:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates assertj-guava’s Java API documentation from traditional Javadoc block comments to Markdown documentation comments, improving readability and maintainability (especially for examples and inline formatting) in line with the Java 25 toolchain.

Changes:

  • Converted Javadoc block comments (/** ... */) to Markdown documentation comments (/// ...) across assertj-guava API and error-message classes.
  • Reworked examples into fenced Markdown code blocks and replaced inline {@link ...} constructs with Markdown-style references.
  • Cleaned up some doc-adjacent code (e.g., removed now-unneeded imports where links were moved/rewritten).

Reviewed changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
assertj-guava/src/main/java/org/assertj/guava/util/ExceptionUtils.java Converted method/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/TableShouldHaveRowCount.java Converted factory method Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/TableShouldHaveColumnCount.java Converted factory method Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/TableShouldContainRows.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/TableShouldContainColumns.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/TableShouldContainCell.java Converted factory method Javadoc (incl. type params) to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/ShouldHaveSize.java Converted class and factory method Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/ShouldContainValues.java Converted class Javadoc to Markdown doc comments; adjusted TODO reference.
assertj-guava/src/main/java/org/assertj/guava/error/ShouldContainKeys.java Converted class and factory method Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldHaveUpperEndpointEqual.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldHaveLowerEndpointEqual.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldBeOpenedInTheUpperBound.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldBeOpenedInTheLowerBound.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldBeClosedInTheUpperBound.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeShouldBeClosedInTheLowerBound.java Converted constructor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldNotIntersect.java Converted class/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldNotEnclose.java Converted class/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldIntersectAnyOf.java Converted class/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldIntersect.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldEncloseAnyOf.java Converted class/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldEnclose.java Converted class/ctor Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/OptionalShouldBePresentWithValue.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/OptionalShouldBePresent.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/OptionalShouldBeAbsent.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/MultisetShouldContainTimes.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/MultisetShouldContainAtMostTimes.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/error/MultisetShouldContainAtLeastTimes.java Converted class Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/data/MapEntry.java Converted class and factory method Javadoc to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/api/TableAssert.java Converted method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Converted extensive method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/RangeMapAssert.java Converted class/method Javadocs (incl. deprecation docs) to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/RangeAssert.java Converted method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/OptionalAssert.java Converted class/method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/MultisetAssert.java Converted method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/MultimapAssert.java Converted method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/InstanceOfAssertFactories.java Converted interface/field/method Javadocs to Markdown doc comments.
assertj-guava/src/main/java/org/assertj/guava/api/ByteSourceAssert.java Converted method Javadocs to Markdown doc comments and fenced examples.
assertj-guava/src/main/java/org/assertj/guava/api/Assertions.java Converted class and utility method Javadocs to Markdown doc comments and fenced examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread assertj-guava/src/main/java/org/assertj/guava/util/ExceptionUtils.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/TableAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/TableAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/TableAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/TableAssert.java Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 39 out of 39 changed files in this pull request and generated 7 comments.

Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeMapAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/MultimapAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/error/RangeSetShouldNotEnclose.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/error/ShouldHaveSize.java Outdated
@scordio
scordio force-pushed the guava-javadoc-markdown branch from 9454980 to 7f1b8e4 Compare July 5, 2026 08:37
@scordio scordio mentioned this pull request Jul 5, 2026
@scordio
scordio force-pushed the guava-javadoc-markdown branch 2 times, most recently from 0a7cb33 to 495c562 Compare July 5, 2026 22:52
@scordio

scordio commented Jul 5, 2026 •

Copy link
Copy Markdown
Member Author

Switching to draft as there is something wrong with Spotless that I need to analyze.

@scordio

scordio commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Switching to draft as there is something wrong with Spotless that I need to analyze.

This is likely an Eclipse formatter bug, reported at:

@scordio
scordio force-pushed the guava-javadoc-markdown branch from 495c562 to 51bea58 Compare July 24, 2026 13:33
@scordio
scordio force-pushed the guava-javadoc-markdown branch 2 times, most recently from 9d19d6b to 56c77ef Compare September 18, 2026 15:29
scordio and others added 4 commits September 21, 2026 09:04
./mvnw -f assertj-guava/pom.xml -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE --define rewrite.activeRecipes=org.openrewrite.java.migrate.lang.JavadocToMarkdownDocComment --define rewrite.exportDatatables=true
Co-authored-by: Copilot Autofix powered by AI <[email protected]>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Unresolved review comments include a public API compatibility change and several broken links or examples.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity · 11 Low severity

Open (12)
Resolved since last review (7)

Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeMapAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/MultisetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/OptionalAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeMapAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Unresolved documentation-link, tag-ordering, and example issues remain.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 5 Low severity

Open (5)
Resolved since last review (12)
Previously missed (17)

In code that hasn't changed since last review

Low severity Reorder Javadoc tags to place @​see before @​since

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​InstanceOfAssertFactories.java:33

The class-level tags put @since before @see, but the repository's documented Javadoc order is @see followed by @since. Please reorder these two tags in the Markdown migration.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldEnclose.java:32

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldEncloseAnyOf.java:31

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldIntersectAnyOf.java:33

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldNotEnclose.java:28

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldNotIntersect.java:33

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldBeClosedInTheLowerBound.java:30

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldBeClosedInTheUpperBound.java:30

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldBeOpenedInTheLowerBound.java:30

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldBeOpenedInTheUpperBound.java:30

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldHaveLowerEndpointEqual.java:37

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from BasicErrorMessageFactory link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeShouldHaveUpperEndpointEqual.java:37

The backticks make this Markdown reference render as literal text instead of linking to BasicErrorMessageFactory; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from ShouldContainKeys link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​ShouldContainKeys.java:37

The backticks make this Markdown reference render as literal text instead of linking to ShouldContainKeys; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from ShouldHaveSize link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​ShouldHaveSize.java:28

The backticks make this Markdown reference render as literal text instead of linking to ShouldHaveSize; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from TableShouldContainCell link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​TableShouldContainCell.java:28

The backticks make this Markdown reference render as literal text instead of linking to TableShouldContainCell; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from TableShouldHaveColumnCount link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​TableShouldHaveColumnCount.java:26

The backticks make this Markdown reference render as literal text instead of linking to TableShouldHaveColumnCount; remove the backticks so the migrated Javadoc preserves the original link.

Low severity Remove backticks from TableShouldHaveRowCount link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​TableShouldHaveRowCount.java:26

The backticks make this Markdown reference render as literal text instead of linking to TableShouldHaveRowCount; remove the backticks so the migrated Javadoc preserves the original link.

Comment thread assertj-guava/src/main/java/org/assertj/guava/api/MultisetAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/OptionalAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeMapAssert.java Outdated
Comment thread assertj-guava/src/main/java/org/assertj/guava/api/RangeSetAssert.java Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Outstanding Markdown Javadoc convention issues and Java 8-incompatible examples remain.

Review effort: Lite
Findings: None

Resolved since last review (5)
Previously missed (4)

In code that hasn't changed since last review

Low severity Use imported MapEntry in Javadoc link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​RangeMapAssert.java:158

MapEntry is imported and used by this class, so this documentation link should use [MapEntry] rather than unnecessarily qualifying the imported type, as required by the repository's Markdown Javadoc rules in AGENTS.md:79-80.

Low severity Use Java 8-compatible collection factory in examples

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​RangeSetAssert.java:130

This migrated example now uses List.of, but the project still publishes production code with java.version 8 (pom.xml:114-118), so copying this documented Java example fails on a supported Java 8 runtime. Keep the Java 8-compatible Arrays.asList form used before the migration.

This issue also appears in the following locations of the same file:

  • line 204
  • line 276
  • line 456
  • line 533
  • line 678
  • ...and 3 more
Low severity Use imported RangeSet in Javadoc link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldIntersectAnyOf.java:23

RangeSet is imported and used by the factory method below, so this Markdown link should use the imported simple name rather than the unnecessarily qualified class name, as required by AGENTS.md:75-84.

Low severity Use simple imported RangeSet link

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​error/​RangeSetShouldIntersectAnyOf.java:35

RangeSet is already imported, so this parameter link unnecessarily uses its fully qualified name and deviates from the repository's Markdown Javadoc link convention in AGENTS.md:75-84.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Several documentation issues remain unresolved, including a non-compiling example.

Review effort: Lite
Findings: None

Previously missed (3)

In code that hasn't changed since last review

Low severity Fix unbalanced quotes in the example comment

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​MultimapAssert.java:294

This converted Markdown line leaves the example comment with unbalanced quotes, making the failure explanation unclear. Quote each mapping consistently, for example "Spurs -> Manu Ginobili" and "Bulls -> Derrick Rose".

Low severity Correct the @​throws grammar

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​MultimapAssert.java:302

The @throws description is grammatically incorrect: "does not have contain". Since this documentation is being rewritten, correct it to "does not contain".

Low severity Replace Java 9 List.of with Java 8-compatible Arrays.asList

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​RangeSetAssert.java:130

This public API example now uses List.of, which is a Java 9 API, while the module targets Java 8. Keep the migration Java 8-compatible by retaining Arrays.asList in the snippet.

This issue also appears in the following locations of the same file:

  • line 204
  • line 276
  • line 456
  • line 533
  • line 678
  • ...and 3 more

@scordio
scordio force-pushed the guava-javadoc-markdown branch from 3af9e45 to baa72a2 Compare September 26, 2026 09:53
@scordio
scordio marked this pull request as ready for review September 26, 2026 09:59
@scordio
scordio requested a lite review from Copilot September 26, 2026 10:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Address the documented Javadoc issues in ByteSourceAssert, RangeAssert, RangeMapAssert, and RangeSetAssert.

Review effort: Lite
Findings: None

Previously missed (2)

In code that hasn't changed since last review

Low severity Remove incorrect Range link from value parameter

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​RangeAssert.java:242

value is the endpoint value of type T, not a Range; linking [Range] here makes the parameter documentation inaccurate and misleading. Remove that link from the description.

Low severity Reference Guava MapEntry factory in deprecated overload example

assertj-guava/​src/​main/​java/​org/​assertj/​guava/​api/​RangeMapAssert.java:112

This Javadoc belongs to the deprecated overload accepting org.assertj.guava.data.MapEntry, but the example tells readers to import the core MapEntry, so the shown entry(...) calls cannot match this method. Reference the Guava MapEntry factory for this overload.

This issue also appears on line 159 of the same file.

@scordio
scordio force-pushed the guava-javadoc-markdown branch from baa72a2 to 3602ac4 Compare September 26, 2026 10:14
@testlens-app

testlens-app Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

✅ All tests passed ✅

⚠️ TestLens detected flakiness ⚠️

Test Summary

CI / Java 25 (macOS-latest) > AssertJ Core

Test Runs Flakiness
CompletableFutureAssert isCompletedWithValueMatchingWithin > should fail with custom description ❌ ✅ 0% 🟢

🏷️ Commit: 3602ac4
▶️ Tests: 18218 executed
⚪️ Checks: 18/18 completed

Test Failures

CompletableFutureAssert isCompletedWithValueMatchingWithin > should fail with custom description (AssertJ Core in CI / Java 25 (macOS-latest) | Attempt 1/2)
java.lang.AssertionError: 
Expecting throwable message:
  "[Custom description] 
Expecting
  <CompletableFuture[Incomplete]>
to be completed within 0.05S.

exception caught while trying to get the future result: java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1981)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2116)
	at org.assertj.core.internal.Futures.assertSucceededWithin(Futures.java:113)
	at org.assertj.core.api.AbstractCompletableFutureAssert.internalSucceedsWithin(AbstractCompletableFutureAssert.java:429)
	at org.assertj.core.api.AbstractCompletableFutureAssert.succeedsWithin(AbstractCompletableFutureAssert.java:425)
	at org.assertj.core.api.AbstractCompletableFutureAssert.isCompletedWithValueMatchingWithin(AbstractCompletableFutureAssert.java:270)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.lambda$should_fail_with_custom_description$0(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:94)
	at org.assertj.core.api.ThrowableAssert.catchThrowable(ThrowableAssert.java:66)
	at org.assertj.core.api.ThrowableAssert.catchThrowableOfType(ThrowableAssert.java:82)
	at org.assertj.core.api.Assertions.catchThrowableOfType(Assertions.java:1623)
	at org.assertj.core.util.AssertionsUtil.expectAssertionError(AssertionsUtil.java:37)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.should_fail_with_custom_description(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:92)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:786)
	at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:514)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$4(TestMethodTestDescriptor.java:221)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:217)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:159)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39)
	at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
	at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
"
to contain:
  "to match given predicate"
but did not.

Throwable that failed the check:

java.lang.AssertionError: [Custom description] 
Expecting
  <CompletableFuture[Incomplete]>
to be completed within 0.05S.

exception caught while trying to get the future result: java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1981)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2116)
	at org.assertj.core.internal.Futures.assertSucceededWithin(Futures.java:113)
	at org.assertj.core.api.AbstractCompletableFutureAssert.internalSucceedsWithin(AbstractCompletableFutureAssert.java:429)
	at org.assertj.core.api.AbstractCompletableFutureAssert.succeedsWithin(AbstractCompletableFutureAssert.java:425)
	at org.assertj.core.api.AbstractCompletableFutureAssert.isCompletedWithValueMatchingWithin(AbstractCompletableFutureAssert.java:270)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.lambda$should_fail_with_custom_description$0(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:94)
	at org.assertj.core.api.ThrowableAssert.catchThrowable(ThrowableAssert.java:66)
	at org.assertj.core.api.ThrowableAssert.catchThrowableOfType(ThrowableAssert.java:82)
	at org.assertj.core.api.Assertions.catchThrowableOfType(Assertions.java:1623)
	at org.assertj.core.util.AssertionsUtil.expectAssertionError(AssertionsUtil.java:37)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.should_fail_with_custom_description(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:92)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:786)
	at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:514)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$4(TestMethodTestDescriptor.java:221)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:217)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:159)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39)
	at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
	at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)

	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:130)
	at org.assertj.core.internal.Failures.failure(Failures.java:129)
	at org.assertj.core.internal.Futures.assertSucceededWithin(Futures.java:115)
	at org.assertj.core.api.AbstractCompletableFutureAssert.internalSucceedsWithin(AbstractCompletableFutureAssert.java:429)
	at org.assertj.core.api.AbstractCompletableFutureAssert.succeedsWithin(AbstractCompletableFutureAssert.java:425)
	at org.assertj.core.api.AbstractCompletableFutureAssert.isCompletedWithValueMatchingWithin(AbstractCompletableFutureAssert.java:270)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.lambda$should_fail_with_custom_description$0(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:94)
	at org.assertj.core.api.ThrowableAssert.catchThrowable(ThrowableAssert.java:66)
	at org.assertj.core.api.ThrowableAssert.catchThrowableOfType(ThrowableAssert.java:82)
	at org.assertj.core.api.Assertions.catchThrowableOfType(Assertions.java:1623)
	at org.assertj.core.util.AssertionsUtil.expectAssertionError(AssertionsUtil.java:37)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.should_fail_with_custom_description(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:92)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:786)
	at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:514)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$4(TestMethodTestDescriptor.java:221)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:217)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:159)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39)
	at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
	at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)

	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:130)
	at org.assertj.core.internal.Failures.failure(Failures.java:129)
	at org.assertj.core.internal.Throwables.assertHasMessageContaining(Throwables.java:227)
	at org.assertj.core.api.AbstractThrowableAssert.hasMessageContaining(AbstractThrowableAssert.java:406)
	at org.assertj.core.api.future.CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.should_fail_with_custom_description(CompletableFutureAssert_isCompletedWithValueMatchingWithin_Test.java:99)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)

Learn more about TestLens at testlens.app/docs.

@github-actions

Copy link
Copy Markdown

Looks good. No mutations were possible for these changes.
See https://pitest.org/

@scordio
scordio merged commit 9334c45 into 3.x Sep 26, 2026
31 of 32 checks passed
@scordio
scordio deleted the guava-javadoc-markdown branch September 26, 2026 10:33
@scordio scordio modified the milestones: 3.x, 3.28.0 Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants