NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central · #1338 by repository stars
Parent POM for all AssertJ modules
Last release 8 months ago
24 Jan 2026
Release timing varies
gaps range from 2 weeks to 5 months
Some releases are documented
notes for 9 of 17 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
18 releases · first in 2023
One column per quarter.
Set since = "3" and forRemoval = true for all deprecations #3762
This release is binary incompatible with the previous major version.
since = "3" and forRemoval = true for all deprecations #3762@VisibleForTesting for removal #3755assertj-guava, adopt module-only build #3771maven-enforcer-plugin execution, append configurationsisSealed reflection-based implementation with JDK built-in implementation #3081isRecord reflection-based implementation with JDK built-in implementation #3079java.sql module dependencyTemporalUnitLessThanOffset Javadoc #3783Thanks to all the contributors who worked on this release:
@aalmiray @RaphaelJenni @SimonHarte @etrandafir93 @fml2 @Bananeweizen @lobaorn @sormuras
Fix XXE vulnerability in isXmlEqualTo assertion ( CVE-2026-24400 )
isXmlEqualTo assertion (CVE-2026-24400)
XmlStringPrettyFormatter with no replacementassertj-core or guava types from assertj-guava Javadoc site has unnecessary header #3478Add missing export for org.assertj.core.annotation #3951
ByteBuddy in AssertJ 3.27.4 not compatible with Java 25 #3946
Deprecate org.assertj.core.annotations.Beta in favor of org.assertj.core.annotation.Beta
org.assertj.core.annotations.Beta in favor of org.assertj.core.annotation.Betaorg.assertj.core.util.CanIgnoreReturnValue in favor of org.assertj.core.annotation.CanIgnoreReturnValueorg.assertj.core.util.CheckReturnValue in favor of org.assertj.core.annotation.CheckReturnValueAbstractDateAssert #3874fail methods with custom @Contract #3882Thanks to all the contributors who worked on this release:
Revert "Propagate common basetype for the extracting method" #3737 Details
Revert "Propagate common basetype for the extracting method" #3737
DetailsThe enhancement introduced with #3673 breaks existing code on Kotlin 1.9; therefore, it has been reverted.
As Spring Boot 3.4 currently supports Kotlin 1.9, we want to keep the same compatibility on AssertJ 3.x, while AssertJ 4.x will require Kotlin 2.x.
Existing code relying on the changes introduced with #3673 will no longer compile and should be refactored.
StandardRepresentation regression for unquoted strings #3735Class info to class loading strategy failures #3746Thanks to all the contributors who worked on this release:
Restore support for null-valued maps when ignoring fields #3723
Deprecate usingComparatorForFields and remove deprecated assertions from usingComparatorForType documentation #3711
usingComparatorForFields and remove deprecated assertions from usingComparatorForType documentation #3711hasCauseReference(Throwable) from Throwable assertions #3715asString()InputStream manipulation when mark / reset are supported #3713RecursiveComparisonConfiguration on usingRecursiveFieldByFieldElementComparator #3719Thanks to all the contributors who worked on this release:
Deprecate ClassBasedNavigableIterableAssert and ClassBasedNavigableListAssert #3529
Propagate common basetype for extracting(Function...) #3673
Before this change, extracting(Function...) changed actual to a list of Object instances, even in cases where the resulting objects could have had a more specific common supertype. With this change, the element type of the returned list is narrowed down to the common supertype of the resulting elements, allowing the compiler to accept chained assertions specific to the common supertype.
However, this can break existing code, like in #3709. Such cases do not justify reverting the change. Therefore, the affected code should be refactored accordingly, given that contains for list assertions already follows the same semantic.
In addition, this can break existing code based on Kotlin 1.9, like in #3728. In such cases, either upgrade Kotlin to 2.x or upgrade AssertJ to 3.27.3, which restores compatibility with Kotlin 1.9.
ClassBasedNavigableIterableAssert and ClassBasedNavigableListAssert #3529actual() to access the object under test #3489isCompletedWithValueMatchingWithin to CompletableFuture assertions #3506completesExceptionallyWithin to CompletableFuture assertions #3597inBinary to CharSequence assertions #3600Assertions.byLessThan(Duration) and Assertions.within(Duration) #3486CharSequence #3617anyMatch and noneMatch #3639doesNotMatch(Predicate) #3684usingEquals accepting a BiPredicate and an optional description to provide a custom comparison in assertions #3678isNotEmpty to Table assertions #3559hasNoNullFields throws NPE with fields of anonymous and local types #3534actualElementsGroupedByHashCode in recursive comparisonignoringFields not working properly with maps #2988hasFieldOrPropertyWithValue swallows exceptions thrown by getters, and reports non-existent property instead #3563satisfies() with nested assertions obscures stack trace #2542expected #3226satisfies(allOf(Condition...)) #3537inUnicode() Javadocequals in recursive comparison #3209ShouldNotContainCharSequenceisLessThan and isLessThanOrEqualTo in AbstractComparisonStrategy #3694AbstractCharSequenceAssert.java reference #3700Thanks to all the contributors who worked on this release:
@JunHyungJang @mipo256 @vladykin @Marcono1234 @sunaleed @etrandafir93 @FlorianCousin @OlivierCavadenti @jh-instant @patrickuhlmann @IvoHD @alexandra-junghans @fmbenhassine @etrandafir93 @shaikhu @cookieMr @emmanuel-ferdman @mk868
Binary compatible with the previous minor version.
The release is:
assertThat(Temporal) with assertThatTemporal(Temporal) #3519FactoryBasedNavigableListAssert::assertThatComparingNormalizedFields instances to be reused across different assertions #3493Thanks to all the contributors who worked on this release:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →