Bump io.projectreactor:reactor-core from 3.7.12 to 3.8.0 by dependabot[bot] · Pull Request #4168 · graphql-java/graphql-java
v3.8.0
Reactor Core 3.8.0 is part of 2025.0.0 Release Train.
3.8.0 Highlights
Enhanced Null Safety using JSpecify
🦺 Reactor Core 3.8.0 introduces JSpecify annotations for comprehensive null safety, replacing the legacy JSR 305-based annotations with a modern, properly specified standard that prevents NullPointerExceptions through build-time checks. This upgrade provides enhanced IDE support, seamless Kotlin integration with automatic translation to Kotlin's null safety system, and more precise nullability declarations including support for arrays, varargs, and generic types — making Reactor APIs safer and more developer-friendly across the entire ecosystem.
⚠️ Nullability annotations from reactor.util.annotation have been deprecated in favour of JSpecify annotations.
📖 Check the refreshed reference documentation section on Null Safety.
⚠️ Note for Kotlin users: While this change is backwards compatible in the Java ecosystem and does not dictate a new generation of Reactor Core, we do appreciate it can appear as breaking changes for Kotlin codebases. The benefits are well defined nullness of the Reactor API and reduction of the ceremony that was required prior to the introduction of JSpecify annotations.
Repeat Spec
Repeat functionality from Reactor Addons has been ported to Reactor Core under the RepeatSpec class and can be used in conjunction with the Flux#repeatWhen() and Mono#repeatWhen() operators. Make sure to check out the Javadoc.
Reactor Core Micrometer version aligned with Reactor Core version
The reactor-core-micrometer library, which is part of the reactor-core repository is always released together with reactor-core, hence we decided to align their versions starting from 3.8.0 (the previous line was 1.2.x corresponding with 3.7.x of reactor-core).
What's Changed
⚠️ Update considerations and deprecations
- Introduce JSpecify for nullability annotations by
@chemicLin reactor/reactor-core#4091
✨ New features and improvements
- Bump byteBuddy from 1.17.7 to 1.17.8 by
@dependabot[bot] in reactor/reactor-core#4113 - Bump io.projectreactor.tools:blockhound from 1.0.14.RELEASE to 1.0.15.RELEASE by
@dependabot[bot] in reactor/reactor-core#4120 - Bump
Micrometerto1.16.0by@chemicLin fedfdd2549fe1190ec5e1b14a13ddf24a1f1b75f - Bump
Context Propagationto1.2.0by@chemicLin fedfdd2549fe1190ec5e1b14a13ddf24a1f1b75f - Repeat specification for use with
repeatWhenoperator by@kwondh5217in reactor/reactor-core#4027 and refinement by@chemicLin b313f5781b919a30bd8b7316438610fbe02b38b7 - Add
Hooks#isAutomaticContextPropagationEnabledby@sdeleuzein reactor/reactor-core#4090 - Adjust
reactor.util.Loggervararg nullability by@chemicLin reactor/reactor-core#4098 - Adjust
Monomethods:fromCallableandfromSuppliernullability by@chemicLin reactor/reactor-core#4116 - Address NullAway warnings and refine
StepVerifiernullability by@chemicLin reactor/reactor-core#4126 - Nullaway jspecify mode fixes by
@chemicLin reactor/reactor-core#4127 - Refine
StepVerifiernullability reflecting non-nullPublishervalues by@chemicLin reactor/reactor-core#4132 - Unify reactor-core-micrometer version with reactor-core by
@chemicLin reactor/reactor-core#4136
🐞 Bug fixes
- Fix
RetryBackoffSpecmultiplier handling of fractional values by@chemicLin reactor/reactor-core#4048 - Adjust
Flux#mapmapper to disallownullreturn values by@chemicLin reactor/reactor-core#4103
📖 Documentation
- [docs] Add Null Safety documentation by
@chemicLin reactor/reactor-core#4137 - Add more description on
tapoperator by@ttddyyin reactor/reactor-core#4009 - fix doc title displayed as untitled by
@dev-jonghoonparkin reactor/reactor-core#4008
New Contributors
... (truncated)