Stay up to date on releases
Create your free account today to subscribe to this repository for notifications about new releases, and build software alongside 40 million developers on GitHub.
Sign up for free See pricing for teams and enterprises
bclozel
released this
⭐️ New Features
- Provide default codecs config callback to custom codecs #24118
- Add protobuf MessageConverter #24087
- Refine Throwable handling in spring-websocket #24075
- Improve part content type determination in MockMultipartHttpServletRequest #24074
- Cache result of String.getBytes() in ExtendedBeanInfo.PropertyDescriptorComparator #24072
- Use String.isEmpty() instead of String.equals("") #24052
- IOException "Closed while Pending/Unready" with WebFlux on Jetty #24050
- Avoid substring allocation in StringUtils.replace #24023
- Use
@MessageMapping
method signature to constrain RSocket interaction model #23999 - Avoid indefinite wait to connect in JettyWebSocketClient #23994
- Add queryParam method to MockHttpServletRequestBuilder #23980
- Fallback locale other than the system locale in AbstractResourceBasedMessageSource #23977
- Support for new MySQL 8 error code 3572 #23972
- Simplify ConstructorResolver: do not sort intermediate array #23969
- Avoid store all beanName in ApplicationListenerDetector #23965
- Allow ExchangeStrategies customizations in WebClient #23961
- Use Method::getParameterCount where possible #23949
- Align implementations of StringToUUIDConverter and UUIDEditor #23940
- Use "non-blocking" thread for server-less tests in WebTestClient #23936
- Avoid default Accept header from HttpUrlConnection in RestTemplate with put and delete #23740 #23855
- Reject "%2F" as an invalid sequence in simp messaging usernames #23836
- ApplicationListenerMethodAdapter: gracefully handle beans which are actually NullBean #23784
- Provide orNull extensions for WebFlux ServerRequest #23761
- MockMvc Kotlin DSL should support async dispatch #23758
- RSocketRequestSpec handling metadata values that is a Publisher type #23640
- Preserve the originalMessage when creating an ErrorMessage in MessageBuilder #23417
- Add an option to not include Charset in the final http request ContentType Header #22971
- Allow sending headers with the disconnect frame #22715
- Avoid String concatenation for lookup in StaticMessageSource #22451
- Keys for form data in FormHttpMessageConverter must not be null #22372
- XpathResultMatcher supports Hamcrest Matcher NodeList #2023
- Error details in RestTemplate client and server exceptions #1956
- Preserve "type" parameter in media type for Atom Feed/Entry message conversion #1885
🐞 Bug fixes
- Null pointer when connecting to RSocket #24088
- Regression:
@Inherited
annotations declared in superclass are not recognized anymore #24077 - RSocketRequester allows specifying data more than once #24073
- Revise AbstractBeanDefinition equals implementation #24048
- SqlRowSet accessor methods should be marked
@Nullable
#24042 - Unsafe invocation of .value() on annotations in SynthesizedMergedAnnotationInvocationHandler prevents backwards-compatible additions to annotations #24029
- InMemoryWebSessionStore makes blocking calls to UUID.randomUUID #24027
- ControllerAdviceBean.findAnnotatedBeans() finds proxies as well as their target beans, resulting in double registration #24017
- NullPointerException in JSON codec parsing stream encoded with Jackson Smile #24009
- Fix inappropriate eager init. #23992
- Calling MethodParameter.isOptional() for Kotlin Continuation parameter fails with IndexOutOfBoundsException #23991
- Regression: ControllerAdviceBean#getOrder() causes BeanCreationException for request scoped advice beans #23985
- TestDispatcherServlet ambiguous handler methods with consumes condition and body not required #23978
- AbstractRequestLoggingFilter.getHeaderPredicate is accidentally public #23976
- Reading 'null' JSON response via WebClient fails in v5.2.x #23935
- Allow schemaZip Gradle task to execute on MS Windows #23933
- Regression: AnnotationUtils.findAnnotation no longer finds non-inherited "java." annotations on superclasses #23929
- ResponseCookie to allow leading dot in domain name again #23924
- Regression in spring-test's 5.2.1 MockCookie parse implementation #23911
- useSuffixPatternMatch ignored if pathPrefix is also used #23907
- Ensure InstantFormatter can properly deserialize ISO-formatted dates #23895
- Fix RSocket Fire and forget handling with Kotlin #23866
- SpEL cannot invoke Kotlin synthetic classes #23812
- ShallowETagHeaderFilter overwrites ETag #23775
- Corrupted multipart + correct content-length lead to
Flux<Part>
hanging #23768
📔 Documentation
- [.] is displayed as [bold .] ,need to escape #24108
- Fix consecutive-word duplications in documentation #24089
- Examples in Data Access chapter declare unused JdbcTemplate fields #24085
- Data Access chapter 3.5.1 uses bad pattern #24084
- Documentation flaw for
<tx:method/>
settings #24080 - Fix errors in documentation #24008
- TypeDescriptor#getElementTypeDescriptor does not throw IllegalStateException anymore #23996
- Update docs on ShallowEtagHeaderFilter with regards to ASYNC dispatches #23958
- DEFAULT_PHASE of SmartLifecycle interface has incorrect Javadoc #23956
- Documentation for ForwardedHeaderFilter does not mention important filter order #23954
- Different behavior when injecting beans from local
@Configuration
class vs. external@Configuration
classes #23934 - Correct Javadoc for WebMvcConfigurer#addInterceptors #23922
- Improve WebClient.Builder::filter documentation #23342
🔨 Dependency upgrades
❤️ Contributors
We’d like to thank all the contributors who worked on our current release!
- @ryenus
- @parviz-93
- @samarthrastogi
- @sap-nocops
- @chtompki
- @jerzykrlk
- @monosoul
- @izeye
- @GungnirLaevatain
- @suztomo
- @yokotaso
- @SchutzeHades
- @wonwoo
- @Syquel
- @y987425112
- @L00kian
- @dreis2211
- @ikempf
- @denisgalaybo
- @facewindu
- @bijukunjummen
- @Kukosoft
- @johngrib
- @yantantether
- @GWhiskas
- @jasdeepgill
- @markhobson
- @chenqimiao
- @stevenschlansker
- @mhewedy
- @njlaw
- @jo2
- @goribun
- @stsypanov