All Versions
72
Latest Version
Avg Release Cycle
110 days
Latest Release
3 days ago
Changelog History
Page 6
Changelog History
Page 6
-
v5.1.14.RELEASE Changes
February 25, 2020🍱 ⭐️ New Features
- 🔧 Consistent ROLE_INFRASTRUCTURE declarations for internal configuration classes #24514
- 🌲 Raise log level for exceptions from EntityManager close call #24513
- BigDecimal in multi-value request body deserializes differently than single-value #24487
- ➕ Add Informix to supported database products for procedure calls #24449
- 🔒 Solve ReflectPermission issue in sandbox security policy model for repackaged CGLIB ReflectUtils #24448
🍱 🐞 Bug Fixes
- 📜 AbstractJackson2Decoder is not aware of jackson's non-blocking parser only supporting UTF-8 #24542
- 🌲 Cycle in LogAdapter.Log4jLog initialization within log appender #24450
- 📜 JSON decoding error parsing stream encoded with Jackson Smile #24412
- Avoid setting special Content-* response headers in TomcatHeadersAdapter #24387
- IncompatibleClassChangeError encountered on execution of compiled SPEL expressions #24362
📔 Documentation
- Clarify AbstractResourceBasedMessageSource.setCacheMillis vs java.util.ResourceBundle #24584
- ⚡️ Update advice on RestTemplate #24505
- 📚 Polish documentation format #24462
⬆️ 🔨 Dependency Upgrades
- ⬆️ Upgrade to Reactor Californium SR16 #24527
-
v5.1.13.RELEASE Changes
January 14, 2020🍱 ⭐️ New Features
- 👌 Support headers with multiple values in ResponseStatusException #24284
- 🗄 Un-deprecate PathResource (for java.nio.file.Path resolution in createRelative) #24217
- 👌 Improve configuration API of ClientCodecConfigurer.CustomCodecs #24201
- ⚡️ Let UriUtils.encode…(…) methods optimize for sources without the need to be encoded #24154
- 👌 Support variable resolution of wildcard types #24150
- 📜 ContentDisposition cannot parse encoded filename with leading space #24148
🍱 🐞 Bug Fixes
- StringDecoder buffer leak related to maxInMemorySize limit #24346
- 🏗 Cloning a WebClient.Builder instance does not copy strategiesConfigurers #24330
- Unsafe double-checked locking in SpelExpression#compileExpression #24306
- Ensure CORS processing does not add Vary header twice on async requests #24229
- 🏗 Escape quotes in filename in ContentDisposition.Builder when charset not specified #24224
- ClassUtils.getInterfaceMethodIfPossible overhead in cached methods for SpEL key/condition expressions #24209
- ClientCodecConfigurer drops MultipartHttpMessageWriter.partWriters when mutated #24202
📔 Documentation
- 📚 WebFlux documentation states incorrectly that BindingResult is supported after
@RequestBody#24181
-
v5.1.12.RELEASE Changes
December 03, 2019🍱 ⭐️ New Features
- 0️⃣ Provide default codecs config callback to custom codecs #24119
- 👍 Allow ExchangeStrategies customizations in WebClient #24106
- Cache result of String.getBytes() in ExtendedBeanInfo.PropertyDescriptorComparator #24095
- IOException "Closed while Pending/Unready" with WebFlux on Jetty #24060
- Avoid substring allocation in StringUtils.replace #24024
- 👌 Support for new MySQL 8 error code 3572 #23973
- WebClient retry() doesn't re-run filters #23909
🍱 🐞 Bug fixes
- 📜 NullPointerException in JSON codec parsing stream encoded with Jackson Smile #24076
- Revise AbstractBeanDefinition equals implementation #24054
- SqlRowSet accessor methods should be marked @nullable #24044
- ControllerAdviceBean.findAnnotatedBeans() finds proxies as well as their target beans, resulting in double registration #24018
- Ensure InstantFormatter can properly deserialize ISO-formatted dates #23993
- 👍 Allow schemaZip Gradle task to execute on MS Windows #23987
- Corrupted multipart + correct content-length lead to Flux hanging #23948
- ShallowETagHeaderFilter overwrites ETag #23941
- ResponseCookie to allow leading dot in domain name #23928
- ✅ Regression in spring-test's 5.2.1 MockCookie parse implementation #23920
- 👉 useSuffixPatternMatch ignored if pathPrefix is also used #23919
📔 Documentation
- TypeDescriptor#getElementTypeDescriptor does not throw IllegalStateException anymore #23997
- 🔧 Different behavior when injecting beans from local @configuration class vs. external @configuration classes #23990
- 0️⃣ DEFAULT_PHASE of SmartLifecycle interface has incorrect Javadoc #23964
- Correct Javadoc for WebMvcConfigurer#addInterceptors #23913
⬆️ 🔨 Dependency upgrades
- ⬆️ Upgrade to Reactor Californium-SR14 #24038
-
v5.1.11.RELEASE Changes
November 02, 2019🍱 ⭐️ New Features
- 🐎 Race condition affecting performance in AbstractJaxb2HttpMessageConverter - JAXBContext creation #23894
- 👌 Support for limits on input stream processing in WebFlux codecs #23885
- 👍 Allow setting primary flag on BeanDefinitionBuilder #23808
- Handling of ResponseStatusException to also include setting of response headers #23800
🍱 🐞 Bug Fixes
- Reorder date formatting converter in registrar #23896
- 🤡 MockServletContext should treat InvalidPathException like an IOException #23888
- 🤡 Preserve expires attribute in MockCookie #23881
⬆️ 🔨 Dependency Upgrades
- ⬆️ Upgrade to Reactor Californium-SR13 #23870
-
v5.1.10.RELEASE Changes
September 28, 2019🍱 ⭐️ New Features
- 📦 Backport PR #22485 (Exclude jdk package in ShadowingClassLoader) to 5.1 branch #23641
- 🔀 SimpleCacheManager should not synchronize on AbstractCacheManager#cacheMap #23635
- 🤡 MockClientHttpResponse loses original HttpStatus code #23599
- BeanUtils.isSimpleValueType() should not consider void or Void as a simple value type #23573
- ClassUtils.isPrimitiveOrWrapper(…) and friends should consider Void.class a primitive wrapper for void.class #23572
- 0️⃣ Custom DefaultResourceLoader subclass should be able to consume context-provided ProtocolResolvers #23564
- sendBufferSizeLimit exceeded should be logged at warn level #23534
- Provide a method to get the original bean name from a scoped target's bean name #23514
- Raise 400 instead of 500 on failure to find index of lookupPath within requestUri in ResourceUrlEncodingFilter #23508
- IncompatibleClassChangeError on Jetty WebSocket ExtensionFactory #23500
- Respect already set
content-lengthheader for HEAD request. #23484 - 👍 Static resource support does not handle requests for a file with % character in its name #23463
- Errors.NativeIoException from WebClient on WebFlux server does not set the response status #23319
🍱 🐞 Bug Fixes
- SameSite cookie attribute missing when using WebFlux #23693
- Ensure ClassFilter and MethodMatcher implementations are cacheable #23659
- 🔗 LinkedCaseInsensitiveMap does not track removals via keySet, entrySet, or values #23644
- Wait for complete disposal of Reactor Netty resources in ReactorResourceFactory #23631
- Spring fails to determine that XML is DTD-based if DTD declaration is followed by a comment #23605
- ClassCastException when use ServerHttpResponseDecorator to modify response of websocket #23598
- Infinite loop due to doFilterNestedErrorDispatch() method in OncePerRequestFilter #23596
- Bean definition override leads to NPE due to inconsistent equality check #23593
- 🛠 Fix DefaultListableBeanFactory#copyConfigurationFrom #23569
- Response with an invalid content type hangs when using WebFlux with Jetty #23553
- Entry set of read-only HttpHeaders loses original headers' ordering #23551
- 0️⃣ DefaultListableBeanFactory throws a NullPointerException when resetBeanDefinition() is invoked concurrently #23542
- 🤡 No way to replace Set-Cookie header via MockHttpServletResponse #23512
- 🤡 ConcurrentModificationException in MockHttpServletResponse #23460
- 🔀 Synchronized blocks in MethodOverrides are hurting concurrency #23448
- AnnotationAttributes#assertNotException should check for instance of Throwable #23424
- ⬆️ Reactive JettyRequestUpgradeStrategy returns 'No WebSocketServerFactory available' on startup with simultaneous handshakes #23313
- ⏱ WebFlux with Tomcat, intermittent timeout when creating response #23096
📔 Documentation
- 👌 Improve docs for AnnotatedBeanDefinitionReader,
@Configuration, and@ContextConfigurationregarding "annotated classes" #23638
⬆️ 🔨 Dependency Upgrades
- ⬆️ Upgrade to Reactor Californium-SR12 #23694
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!
-
v5.1.9.RELEASE Changes
August 02, 2019🍱 ⭐️ New Features
- 👍 WebClient's retrieve doesn't support custom HTTP status code #23367
- 🏗 Can't wrap a ClientResponse with a custom status code in a builder #23366
- 📜 Javadoc missing on some public BeanDefinitionParserDelegate methods #23349
- 🏗 In contrast to the Javadoc, ServerHttpRequest.Builder implementation does not override headers #23333
- 🚀 Hibernate Query.list() is not included in SharedEntityManagerCreator.queryTerminatingMethods set, causing database connection not to be unreleased when query is proxied #23248
- 👻 Exception while WebClient onStatus handler is applied leads to ByteBuf leak #23230
- 🚦 Error signal not propagated if writeFunction in ChannelSendOperator fails immediately #23175
- 📜 PathPatternParser does not allow any non-Java characters in variables like "-" #23101
🍱 🐞 Bug Fixes
- MethodParameter.equals is too coarse-grained for its use in HandlerMethodArgumentResolverComposite #23352
- Session.close() accidentally triggers creation of TransactionAwareDataSourceProxy Connection #23346
- Inconsistent use of getInterfaceMethodIfPossible for init method invocation #23323
- ResolvableType.forRawClass fails isAssignable against TypeVariable #23321
- ForwardedHeaderTransformer preserves escape sequences when applying X-Forwarded-Prefix #23305
- Accept header with trailing comma produces HTTP "406 Not Acceptable" #23241
- FlashMapManager throws StringIndexOutOfBoundsException for empty target URL path #23240
- SpEL ReflectivePropertyAccessor: ConversionService missing annotations on concrete implementations #23210
- Defensively register ReactiveReturnValueHandler for messaging methods #23207
- 🌲 Raise log level when bean destruction fails #23200
- 🆕 New OncePerRequestFilter behavior breaks RequestContextFilter on Jetty after sendError #23196
- SpringValidatorAdapter's ObjectError subclass is not Serializable #23181
- WebSocketHttpRequestHandler not writing headers after interceptor returns false #23179
- Reliable detection of user change from interceptor in StompSubProtocolHandler #23160
- 🛠 Fixes issue with optional
@RequestPartMono argument being resolved to null instead of Mono.empty #23070
📔 Documentation
- ➕ Add Javadoc since for Jaxb2XmlDecoder(MimeType...) #23353
- 🛠 Fix typo in webflux.adoc #23329
- Clarify use of MultipartBodyBuilder with RestTemplate #23295
- 👌 Improve documentation for
@Autowiredconstructors #23263 - AbstractCacheManager.getCache() breaks contract of CacheManager.getCache() #23193
- PriorityOrdered Javadoc is misleading #23187
- 👍 Document that Ordered is not supported for
@ControllerAdvicebeans #23172 - 🛠 Fix Jackson documentation broken links #23153
- Document how to specify Jackson JSON view serialization hints #23150
- 🗄 HtmlUtils Javadoc refers to deprecated Apache Commons Lang #23122
- 📄 Docs for Spring MVC Test should cover async requests [SPR-15099] #19666
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!
-
v5.1.8.RELEASE Changes
June 13, 2019🍱 ⭐️ New Features
- 🌐 Thread-safe removal of destruction callbacks in web scopes #23117
- Guard against ConcurrentModificationExceptions in the systemProperties PropertySource #23063
- OncePerRequestFilter does not work properly on Error Dispatch on Jetty #22989
- SimpleMessageListenerContainer - add possibility to disable manual recovery #22987
- AntPathMatcher#isPattern ignores template variables #22959
- 🌐 Avoid expensive assertions in web resource resolution #22955
- WebFlux: Mono does not invoke onComplete(), but instead cancel() #22952
- Illegal reflective access on shutdown of ExecutorService #22939
- Illegal reflective access by SpEL ReflectivePropertyAccessor #22242
🍱 🐞 Bug Fixes
- 🛠 Fix MockHttpServletRequest.setCookies to produce single Cookie header #23074
- MappingMediaTypeFileExtensionResolver ConcurrentModificationException #23064
- Weird behaviour when calling
ApplicationContext.getBean()with a null class reference #23045 - StompSubProtocolHandler does not close the connection after sending an ERROR frame #23039
- WebFlux AbstractView does not allow null model values anymore #23038
- 🛠 Fix ScriptUtils for MS Windows line ending #23019
- validation error message {0} is not working #23014
- AnnotatedElementUtils.findMergedAnnotation not working for javax annotations (e.g. NotNull) #22957
- ⚡️ WebFlux AbstractView does not update BindingResult for resolved async attributes #22933
- HeaderResultMatchers should not import org.junit.Assert #22932
📔 Documentation
- Reintroduce author list and copyright notice #23049
- 📚 spring-mvc.xsd stale-if-error attribute documentation incorrect #22983
- AbstractBeanDefinition.getBeanClass() javadoc misleads about returning null #22960
- 🛠 Fix typo in package-info.java #22941
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!
-
v5.1.7.RELEASE Changes
May 09, 2019🍱 ⭐️ New Features
- 👌 Support any HttpEntity implementing ResolvableTypeProvider #22931
- Early out in PropertyPlaceholderHelper if no placeholder exists #22870
- 0️⃣ Don't throw an exception in CookieLocaleResolver, fallback to default locale instead #22861
- Streamline ReactiveAdapterRegistry.getAdapter usage #22842
- 🌲 Consider logging classcast exceptions caused by lambdas at trace level #22834
- Ensure flush after StreamingResponseBody #22813
- ⚡️ Optimize writing with Mono Publisher #22800
- Disable ShallowEtagHeaderFilter when ETag handled in application #22797
- 0️⃣ Avoid MessageFormat processing for default
@Patternvalidation message #22761 - Avoid SourceClass creation for annotations that are always ignored #22750
- Avoid expensive assertions in HttpRange #22742
- Avoid exceptions in ReflectionUtils.isObjectMethod(…) #22730
- Jackson2Tokenizer ignores USE_BIG_DECIMAL_FOR_FLOATS deserialization feature #22510
- 0️⃣ StringHttpMessageConverter will add all the default charsets even if Accept-Charset is set explicitly #22506
- 🛠 Fix CompletableFuture exception handling #22476
🍱 🐞 Bug Fixes
- 🛠 Fix EncoderHttpMessageWriter.isStreamingMediaType() #22936
- Consistent handling of empty List entries in LinkedMultiValueMap #22912
- 👻 Check if null before accessing exception message in webflux InvocableHandlerMethod#logArgumentErrorIfNecessary #22900
- 0️⃣ DefaultListableBeanFactory.destroySingleton(s) not thread-safe for manual singletons #22896
- 🤡 MockHttpServletRequest raises IndexOutOfBoundsException when Accept-Language is not set #22877
- 🌲 Avoid unguarded String concatenation for debug/trace logging #22874
- [Regression] 404 without ACCEPT request header results in a 406 in Spring Framework 5.1.6 #22853
- ResourceUrlEncodingFilter throws StringIndexOutOfBoundsException when %ED%B6 is in the URL path #22851
- 🤡 MockCookie.parse(String) mishandles case sensitivity #22786
- WebClient fails to send POST body when ObjectMapper FLUSH_AFTER_WRITE_VALUE is false #22771
- More leaks related to Mono.just(dataBuffer) or Flux.just(dataBuffer) #22754
- Jackson2ObjectMapperBuilder prevents the registration of multiple modules with a null typeId #22740
- ProtobufEncoder and ProtobufDecoder buffer leaks #22731
- o.s.h.server.reactive.ChannelSendOperator may leak the memory on cancel/error #22720
- EL1072E when evaluating compiled comparison expression #22358
- Got 404 with non-ASCII coded static resources in webflux #22272
📔 Documentation
- NullPointerException in Base64Utils.encodeToString #22812
- ✂ Remove the PROPAGATION_ prefix in the documentation of enum Propagation #22809
- Inconsistent behavior when autowiring multiple beans by type as collection without matching beans #22735
- Acknowledge that HttpHeaders are case-insensitive #22723
🍱 ❤️ Contributors
🚀 We'd like to thank all the contributors who worked on this release!
-
v5.0.20.RELEASE Changes
December 09, 2020🍱 ⭐ New Features
- ContentCachingResponseWrapper should not add “Content-Length” when “Transfer-Encoding” is present #26193
- Inefficient request handling inside ServletRequestDataBinder #26006
- Avoid creation of unused logger instance in AbstractMediaTypeExpression #25903
🍱 🐞 Bug Fixes
- ✂ Remove duplicate "property" in PropertyCacheKey.toString() #26244
- 🚚 UrlPathHelper#removeJsessionid doesn't remove the jsessionid from the URL #26085
- 🔗 LinkedMultiValueMap downstream issue with MultiValueMapAdapter package private base class #25962
- Wrong type inference in Kotlin while overriding RequestMappingHandlerMapping#getMappingForMethod #25873
- ClassCastException when wiring bean using method injection (NullBean instead of 'null') #25870
- 🚚 jsessionid breaks request mappings when removeSemicolonContent is turned off #25868
📔 Documentation
-
v5.0.19.RELEASE Changes
September 15, 2020🍱 ⭐ New Features
- 👍 PropertiesLoaderSupport should ignore socket/connect exceptions as well #25721
- Possible optimization in UrlResource #25551
- Refine use of substring operations #25514
🍱 🐞 Bug Fixes
- FileUrlResource isWritable method returns true if URL protocol is not indicating a file #25740
- 👌 VerifyErrors when using SpEL compilation with Thymeleaf when invoking a default method defined in an interface #25712
- 📇 CallMetaDataContext.reconcileParameters overwrites cursor name #25709
- SQLErrorCodesFactory.getErrorCodes(DataSource) returns empty error codes if access to transactional connection fails #25693
- Joda-Time presence check fails to detect Joda-Time 2.x specifically #25659
- Potential integer overflow in AbstractResourceBasedMessageSource.setCacheSeconds(int) #25643
- Lazy dependency proxy does not populate bean dependencies #25564
- StaticListableBeanFactory.isSingleton() returns false for singleton beans #25524
- 🤡 MockHttpServletResponse reset() does not reset charset field #25511
📔 Documentation