All Versions
53
Latest Version
Avg Release Cycle
33 days
Latest Release
613 days ago

Changelog History
Page 4

  • v5.1.15.RELEASE Changes

    April 28, 2020

    🍱 ⭐ New Features

    • πŸ“‡ Caching of autowire candidate metadata for lazy beans #24973
    • 0️⃣ Put a limit on the size of DefaultSingletonBeanRegistry#suppressedExceptions #24972
    • 0️⃣ Honor overridden AcceptHeaderLocaleContextResolver.getDefaultLocale() #24876

    🍱 🐞 Bug Fixes

    • 🀑 MockHttpServletRequest should not strip brackets from IPV6 address supplied via Host header #24917
    • Connection created by SingleConnectionDataSource with suppressClose=true always returns isClosed=false even if the target connection is closed #24858
    • 0️⃣ DefaultListableBeanFactory.getBean(Class) throws NoSuchBeanDefinitionException on existing bean if getBean(Class) previously tried before registration #24855
    • Recursively copy directory with symbolic link #24826
    • ⚠ Illegal reflective access warning for interface-based lookup method injection #24791
    • πŸ‘― Using UriComponentsBuilder.cloneBuilder does not copy uriVariables #24779
    • Implementing interface in abstract class does not expose parameter annotations #24754
    • πŸ“¦ Missing nullability declarations for package web.socket.server.jetty #24750
    • πŸ‘€ MediaTypeNotSupportedStatusException seems unused #24748
    • Spring generates huge callstack for async requests #24692
    • βž• addCandidateComponentsFromIndex should create ScannedGenericBeanDefinitions #24639

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR18 #24893
  • 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-length header 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 @ContextConfiguration regarding "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 @RequestPart Mono 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 @Autowired constructors #23263
    • AbstractCacheManager.getCache() breaks contract of CacheManager.getCache() #23193
    • PriorityOrdered Javadoc is misleading #23187
    • πŸ‘ Document that Ordered is not supported for @ControllerAdvice beans #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 @Pattern validation 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

    • 0️⃣ DateTimeFormat ISO.DATE_TIME javadoc contains misleading default note #26137
    • Incorrect example in javadocs of Assert.notNull(object, messageSupplier) #25871