All Versions
53
Latest Version
Avg Release Cycle
33 days
Latest Release
530 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v5.2.9.RELEASE Changes
September 15, 2020π± β New Features
- HttpHeaders.setContentDispositionFormData should ignore empty filename #25769
- π§ StringDecoder does not provide a way to configure the default charset #25762
- π§ MimeMessageHelper.addAttachment: configurable encoding of attachment filename #25755
- π² Current log level not checked by LogAccessor supplier-enabled logging methods #25741
- π PropertiesLoaderSupport should ignore socket/connect exceptions as well #25717
- Avoid repeated calls to getPathWithinApplication from UrlPathHelper.getLookupPathForRequest #25669
- π Avoid full singleton lock for DefaultSingletonBeanRegistry.getSingleton(beanName, false) #25667
- XStreamMarshaller should avoid direct use of CompositeClassLoader which is not exported by XStream in OSGi #25662
- π Avoid LinkedList performance issues through use of ArrayDeque #25652
- Introduce createContext() factory method in AbstractGenericContextLoader #25600
- π Declare MessagePostProcessor as a
@FunctionalInterface
#25571 - π Assert preconditions for MergedAnnotations.from() factory methods #25568
- Provide access to AbstractRoutingDataSource's resolved target DataSources #25544
- Possible optimization in UrlResource #25531
- Refine use of substring operations #25445
- π Cache abstraction does not log hit / miss for synchronized access #25248
π± π Bug Fixes
- Issue with Forwarded Header and Multiple Values #25737
- π CallMetaDataContext.reconcileParameters overwrites cursor name #25707
- π VerifyErrors when using SpEL compilation with Thymeleaf when invoking a default method defined in an interface #25706
- SQLErrorCodesFactory.getErrorCodes(DataSource) returns empty error codes if access to transactional connection fails #25681
- π Make "org.springframework.util.unit.DataSize" class Serializable #25675
- Joda-Time presence check fails to detect Joda-Time 2.x specifically #25655
- Regression in SimpleThreadScope introduced in 5.2.7 #25618
- π Potential integer overflow in ExecutorConfigurationSupport.setAwaitTerminationSeconds(int) and AbstractResourceBasedMessageSource.setCacheSeconds(int) #25613
- β Remove session on 4xx response from WebSocket handshake #25608
- π spring-jdbc don't set out parameter name from metadata for Postgresql function after issue#25399 #25588
- FileUrlResource isWritable method returns true if URL protocol is not indicating a file #25584
- Lazy dependency proxy does not populate bean dependencies #25562
- β¬οΈ Bean creation fails with StackOverflowError after upgrading from 5.1.13 to 5.2.7 #25546
- StaticListableBeanFactory.isSingleton() returns false for singleton beans #25522
- π€‘ Standalone MockMvc ignores
@RestControllerAdvice
annotation attributes #25520 - π€‘ MockHttpServletResponse reset() does not reset charset field #25501
- AnnotationTypeMappings does not filter repeatable annotations #25483
- Wrong error message for type mismatch in jsonPath().value() #25480
- π Fix infinite loop bug in AnnotationScanner #25429
- Overloaded
@Bean
method with name mismatch causes bean to be created twice (in case of ASM processing) #25263
π Documentation
- π Prevent confusion about build(boolean) method in UriComponentsBuilder #25604
- Document how to specify Jackson JSON view serialization hints with
@RestController
and Webflux #25596 - π§ Inconsistent log level in
@Bean
javadoc and ConfigurationClassEnhancer #25590 - π Fix asciidoctor syntax for source #25539
- π Improve Javadoc for
@RequestMapping
#params #25482 - Document that SimpleCacheManager requires caches to be initialized when not used as a bean #22988
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to Reactor Dysprosium-SR12 #25730
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.8.RELEASE Changes
July 21, 2020π± β New Features
- Defer creating logger in StandardWebSocketHandlerAdapter #25427
- π MutablePropertySources will not find or remove proxied sources #25369
- Profiles should be comparable when created via Profiles.of() #25340
- Avoid re-creating RSocketRequester instance per subscriber #25330
- Hoist Class.getName() from String concatenation to dodge an issue related to profile pollution #25324
- π Improve Random seed in SocketUtils #25321
- π Support fragments in UriComponentsBuilder.fromHttpUrl() #25300
- π Support for custom cache registration in CaffeineCacheManager #25230
- Don't get ContentCachingResponseWrapper in ShallowEtagHeaderFilter so that users can extend this wrapper #24976
- β± Unnecessarily alarming stack trace logged during scheduler resolution #23268
- π¦ Expose a setExceptionListener method in DefaultJmsListenerContainerFactory [SPR-17570] #22102
π± π Bug fixes
- π UriComponentsBuilder.cloneBuilder() cause sharing query parameters between builders #25423
- SimpleJdbcCall does not find stored function with PostgreSQL driver 42.2.11 #25399
- π MappingJackson2HttpMessageConverter might be too specific in its Charset support #25322
- ReactorNetty websocket issue for multiple clients with different protocols #25315
- Mutating a ServerHttpRequest breaks the existing context path #25279
- ServerHttpRequest.getSslInfo() always returns null for reactor-netty HTTP/2 requests #25278
- βͺ NoRollbackFor rule causes TransactionAspectSupport to log unwarranted "exception overridden" error on WebSphere #25253
- AbstractJackson2HttpMessageConverter - Check for encoding breaks JSON to POJO de-serialization experience #25247
- The AbstractTemplateViewResolver class is not abstract #25240
- WebClient: NPE and leak in case connection is reset by server. #25216
- Oracle LOB segments holding TEMP space after executing SP using SimpleJdbcCall with SqlParameterSource #22972
- IllegalReferenceCountException happens when the operation was canceled #22594
- π DefaultListableBeanFactory.getBean(Class) may throw NoSuchBeanDefinitionException when removeBeanDefinition is being called simultaneously to remove an unrelated bean #22263
π Documentation
- 0οΈβ£ Clarify enforceInitMethod/enforceDestroyMethod default values in AbstractBeanDefinition #25402
- π Improve JavaDoc for ConfigurableApplicationContext.refresh() #25380
- π Fix interface and class names in examples in core-aop doc #25351
- Wording changes #25314
- π Fix typo in Java example for handler class #25302
- π Improve Javadoc for @value regarding supported expressions #25284
- π Fix syntax in validation examples #25251
- π» Document exception handling limitations in TaskDecorator implementations (specifically for ThreadPoolTaskExecutor#submit) #25231
β¬οΈ π¨ Dependency upgrades
π± β€οΈ Contributors
π Weβd like to thank all the contributors who worked on our current release!
-
v5.2.7.RELEASE Changes
June 09, 2020π± β New Features
- Implement reliable invocation order for advice within an
@Aspect
#25186 - π Performance enhancement in execution of ResponseEntity.of() #25183
- π Support for shared GroovyClassLoader in GroovyScriptFactory #25177
- Suggest making a Set.size() > 0 judgement for AbstractApplicationContext.earlyApplicationEvents #25161
- π§ Make use of custom types configurable in YamlProcessor #25152
- 0οΈβ£ Avoid need for default constructor in ContextAnnotationAutowireCandidateResolver subclasses #25131
- ConstructorResolver.resolveConstructorArguments() return value issue #25130
- Introduce serializeToByteArray/deserializeFromByteArray convenience methods #25117
- π€‘ Custom HTTP Method on MockServerHttpRequest #25109
- Missing null checks in AbstractMessageChannel.addInterceptor/setInterceptors #25088
- π Avoid full synchronization in AbstractRefreshableApplicationContext.getBeanFactory() since it can lead to massive thread blocking #25081
- π Simplify use of HttpContext in HttpComponentsClientHttpRequestFactory in support of user associated connections #25066
- ResolvableType forClass fails when a type in the generic signature isn't present #25064
- π² Include timeout unit in shutdown failure logging #25058
- β¬οΈ Drop unnecessary intermediate StringBuilder.toString() call in ServerSentEventHttpMessageReader #25024
- π Fix concurrency issues in XStreamMarshaller #25017
- Introduce mechanism to discover whether a reactive type registered in ReactiveAdapterRegistry uses deferred computation #24995
- π² Avoid logging exception for closed session in AbstractSockJsSession #24986
- π» Include response body in RestTemplate exception when there is no suitable HttpMessageConverter #24964
π± π Bug Fixes
- ExchangeStrategies custom codec's reader & writer are not registered #25149
- MultiValueMapAdapter.getFirst fails with IndexOutOfBoundsException in case of empty List #25140
- π» WebSphereUowTransactionManager causes exception for PROPAGATION_SUPPORTS when timeout is specified #25132
- π Avoid ClassCastException on IllegalArgumentException when invoking sync get cache method #25110
- π DefaultServerRequestBuilder does not respect attributes when building the ServerRequest #25106
- π Fix race condition in WriteResultPublisher between subscription and error in publishError #25096
- Jackson message converters and codecs do not respect character encoding in canRead/canWrite #25076
- 0οΈβ£ DefaultClientResponseBuilder empty logPrefix when creating a DefaultClientResponse based on another #25069
- HttpHeaders equals may return false without comparing actual content #25034
- π Fix race condition in WriteResultPublisher between subscription and completion in publishComplete #24989
π Documentation
- Javadoc for hibernate5 OpenSessionInViewFilter mentions FlushMode.NEVER #25158
- Document that the Map backing a MapPropertySource should not contain null values #25142
- β‘οΈ Javadoc for JdbcOperations.batchUpdate should mention that negative values are possible #25138
- π Fix URI pattern example in webflux.adoc #25137
- Document how reactive transactions work for cancellation in 5.2 and how it will work in 5.3 #25091
- π Document whether code can rely on specific subclasses of HttpClientErrorException/HttpServerErrorException being thrown from DefaultResponseErrorHandler #25067
- π Fix SpelEvaluationException with example code #25045
- π javadoc: remove a comment documented a limitation on
@Lookup
annotation #25044 - Document all predefined variables from ApplicationContext available in SpEL expressions #25037
- π Document ReactiveTransactionManager support in reference manual #25036
- π Document ReactiveTransactionManager support #25030
- π Change to placeholder value in XML is not reevaluated at runtime #25022
- β Add missing
@PathVariable
declarations in examples in webmvc.adoc #25006
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to Reactor Dysprosium-SR8 #25210
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
- Implement reliable invocation order for advice within an
-
v5.2.6.RELEASE Changes
April 28, 2020π± β New Features
- Cache meta-annotations for stereotype check in AnnotationBeanNameGenerator #24980
- β¬οΈ Use WebsocketServerSpec in ReactorNettyRequestUpgradeStrategy #24959
- Warn about unsupported "/path/**/other" patterns with WebFlux PathPatternParser #24958
- π Allow override of data binding in ModelAttributeMethodArgumentResolver #24947
- Rid pointless wrapping with BufferedInputStream from class reading #24946
- ResponseStatusExceptionResolver ignores ResponseStatusException headers #24944
- π Caching of autowire candidate metadata for lazy beans #24904
- 0οΈβ£ Put a limit on the size of DefaultSingletonBeanRegistry#suppressedExceptions #24902
- Prevent setting parent bean factory to self #24900
- 0οΈβ£ Honor overridden AcceptHeaderLocaleContextResolver.getDefaultLocale() #24871
- π Improve performance of StringUtils.deleteAny() #24870
- 'args' argument of 'JdbcTemplate#query(String, Object[], RowCallbackHandler)' method should be marked
@Nullable
#24839 - π Improve usage of ByteArrayOutputStream/ByteArrayInputStream #24805
- Simplify conversion of ByteArrayOutputStream to String #24785
- β‘οΈ Optimize sortPostProcessors() in PostProcessorRegistrationDelegate #24776
- β¬οΈ Reduce byte array allocations in StompEncoder #24694
π± π Bug Fixes
- ConflictingBeanDefinitionException on repeated index evaluation #24978
- Reintroduce synthesized annotation attribute value caching #24970
- π€‘ MockHttpServletRequest should not strip brackets from IPV6 address supplied via Host header #24916
- Memory leak in MimeTypeUtils LRUCache #24886
- Annotation searches potentially synthesize annotations unnecessarily #24861
- Connection created by SingleConnectionDataSource with suppressClose=true always returns isClosed=false even if the target connection is closed #24853
- 0οΈβ£ DefaultListableBeanFactory.getBean(Class) throws NoSuchBeanDefinitionException on existing bean if getBean(Class) previously tried before registration #24852
- Cannot dispatch without an AsyncContext when an expected error is thrown #24835
- Duplicate Vary headers after enabling CORS filter #24829
- π Make it possible to run Spring MVC without kotlin-reflect #24828
- Recursively copy directory with symbolic link #24823
- Connection leak with WebClient retrieve().toBodilessEntity() #24788
- π― Using UriComponentsBuilder.cloneBuilder does not copy uriVariables #24782
- π Fix empty domain handling in ResponseCookie #24758
- β Illegal reflective access warning for interface-based lookup method injection #24657
- π Annotation retrieval performance degradation after 5.2 #23905
π Documentation
- HttpHeaders#getETagValuesAsList(String) does not document IAE #24950
- π Describe that bean disposal is unsupported for the beans created by FactoryBean #24948
- π Deprecate AnnotationFilter.NONE (since MergedAnnotations always filters java.lang.* annotations) #24932
- π Improve Javadoc #24908
- π Fix Javadoc in PathPattern #24841
- 0οΈβ£ Document default constructor as fallback for multiple non-
@Autowired
constructors #24838 - Document precedence for
@DynamicPropertySource
#24837 - π Documentation: AbstractBeanDefinition.getBeanClass() vs BeanFactory.getType #24816
- π Fix typos and improve readability in Webflux documentation #24781
- Document role of views within Spring application #24777
- π Clarify how to avoid favoring path extensions as well as deprecation warnings #24642
β¬οΈ π¨ Dependency Upgrades
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.5.RELEASE Changes
March 24, 2020π± βοΈ New Features
- Do not cache multipart mime types in MimeTypeUtils LRU cache #24767
- Declare proxyBeanMethods=false in JmsBootstrapConfiguration #24752
- π Usage of java 14 record throws java.lang.UnsupportedOperationException: This feature requires ASM8_EXPERIMENTAL #24722
- Non-public Kotlin beans can't be instantiated #24712
- Avoid ClassCastException for CoyoteInputStream in TomcatHttpHandlerAdapter #24707
- Avoid unnecessary sorting in AbstractHandlerMethodMapping #24704
- π Improve performance of StringUtils#cleanPath #24674
- β‘οΈ Optimize global advisor registration in ProxyFactoryBean #24669
- Short circuit check in SynthesizedMergedAnnotationInvocationHandler.isVisible() #24664
- Ignore empty domain string in ResponseCookie #24663
- β Remove UTF-8 charset parameter from Content-Type in SseEmitter #24632
- π» Jaxb2XmlDecoder Does Not Throw Codec Exception For Invalid XML #24622
- TransactionInterceptor constructors should accept a generic TransactionManager #24612
- 0οΈβ£ Relax GraalVM checks in DefaultParameterNameDiscoverer #24600
- π Multipart/related support in Spring Webclient #24582
- π Consider supporting PreFlight requests and CORS in Servlet Functional Endpoints #24564
- π Support for byte-range requests in Servlet Functional endpoints #24562
- π§ Provide a mechanism to configure integration tests with a dynamic property source #24540
- π Improve ConcurrentLruCache performance #24469
- β¬οΈ Reduce Class[] garbage when creating proxies #24221
- implements
checkNotModified
forServerRequest
#24173 - π» AbstractSockJsSession exception when handling message with closed session #23828
π± π Bug Fixes
- π¦ Missing nullability declarations for package web.socket.server.jetty #24745
- π MediaTypeNotSupportedStatusException seems unused #24743
- π MessagingRSocket incorrectly tries to release entire input stream on channel interaction #24741
- π MimeTypeUtils performance degradation #24671
- π RSocket MetadataEncoder expands the routes incorrect #24656
- Spring generates huge callstack for async requests #24652
- CodecException (from JSON conversion) in RestController is not mapped to 400 but 500 (SB 2.2.5 & Kotlin) #24646
- β addCandidateComponentsFromIndex should create ScannedGenericBeanDefinitions #24638
- ShallowETagHeaderFilter (still) overwrites ETag and Content-Length #24635
- Invalid JSON in requests now causes 500 instead of 400 #24630
- Invalid request results in 500 INTERNAL ERROR instead of 400 BAD REQUEST (with Lombok and Kotlin) #24610
- π Distributions no longer deployed #24605
- UnknownHttpStatusCodeException is missing the response body #24595
- Implementing interface in abstract class does not expose parameter annotations #24127
π Documentation
- Clarify name generation responsibility for PropertySourceFactory implementations #24757
- π Improve Javadoc in
@Configuration
#24753 - π Improve Javadoc in AnnotatedElementUtils #24740
- Clarify behavior for WebClient statusHandlers #24736
- β¨ Enhance Spring Core documentation, section 1.9.2. Using
@Autowired
#24711 - 0οΈβ£ Do not mention credentials as enabled by default in CorsRegistry #24691
- π Improve Javadoc in AutoProxyRegistrar #24688
- π Improve javadoc in RollbackRuleAttribute regarding nested classes #24682
- π Fix typo in testing.adoc #24627
- π Polish ReactorResourceFactory #24620
- π Fix typo in reference manual #24597
- β Add more lambda expressions in data-access code examples #24398
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to JUnit 5.6.1 #24762
- β¬οΈ Upgrade to Reactor Dysprosium SR6 #24725
- β¬οΈ Upgrade to Groovy 2.5.10 (for JDK 14 compatibility) #24719
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.4.RELEASE Changes
February 25, 2020π± βοΈ New Features
- BlockHoundIntegration for spring-core #24581
- π§ Configure quiet period for shutting down Netty resources #24538
- π§ Consistent ROLE_INFRASTRUCTURE declarations for internal configuration classes #24509
- π² Raise log level for exceptions from EntityManager close call #24501
- π ExecutorConfigurationSupport to allow millisecond precision for await termination period #24496
- π Improve assertion message in PersistenceExceptionTranslationInterceptor #24484
- BigDecimal in multi-value request body deserializes differently than single-value #24479
- If controller method has produces="/" in 5.2.3 response is 500 instead of 406 #24466
- π SseEmitter cannot format text/plain if StringHttpMessageConverter is not configured #24465
- π Support command line arguments with an empty value #24464
- AbstractJackson2HttpMessageConverter + Jackson 2.10: handle ValueInstantiationException properly #24455
- Compatibility with JDK 14 #24453
- Avoid opaque to hierarchical reset in UriComponentsBuilder when input is null #24444
- β Add Informix to supported database products for procedure calls #24443
- π Solve ReflectPermission issue in sandbox security policy model for repackaged CGLIB ReflectUtils #24420
- π Allow non-standard HttpStatus in reactive ServerHttpResponse #24400
- π Allow customizing default Smile codec via CodecConfigurer #24382
- Simplify getCache() method in CaffeineCacheManager #24376
- π¦ Expose property for handling of Ping frames with Reactor Netty WebSocket client and server #24367
- π Simplify getParsedSql() method in NamedParameterJdbcTemplate #24358
- Provide control over formatting of request in HttpWebHandlerAdapter #24352
- β Add hook-point to exclude imported configuration classes #24175
- 0οΈβ£ Jackson2Decoder fails to determine correct target type from default interface method with a generic type #23791
- Extra empty line a["\n"] messages from ActiveMQ STOMP broker #23713
- β Add a way to combine more than one AnnotationIntrospector in Jackson2ObjectMapperBuilder instead of overriding it #22830
- β Add unique number to WebFlux log prefix for Reactor Netty server #22039
π± π Bug Fixes
- π€‘ NullPointerException in MockHttpServletRequestBuilder for URI string with no protocol #24556
- β BeanPostProcessorChecker warning due to missing infrastructure role on ProxyTransactionManagementConfiguration #24508
- spring-aspects has a compile dependency on spring-orm #24491
- π AbstractJackson2Decoder is not aware of jackson's non-blocking parser only supporting UTF-8 #24489
- π€‘ MockRestServiceServer reset does not clear failedRequests #24486
- π Prevent unnecessary refresh for InjectionMetadata.EMPTY #24485
- β¬οΈ "Status and headers already sent" ISE exception from Reactor Netty on WebSocket upgrade #24475
- The new Encoder.encodeValue and Decoder.decode methods in spring 5.2 do not provide access to the Context #24441
- π² Cycle in LogAdapter.Log4jLog initialization within log appender #24440
- Negative byte values not properly converted to unsigned int in URI encoding #24413
- ServerSentEventHttpMessageReader maps null when event has comment only. #24389
- π Nested annotations no longer supported in ASM-based annotation processing #24375
- Explicit Content-Type Header in WebClient is overwritten by ResourceHttpMessageWriter #24366
- Avoid setting special Content-* response headers in TomcatHeadersAdapter #24361
- IncompatibleClassChangeError encountered on execution of compiled SPEL expressions #24357
- π JSON decoding error parsing stream encoded with Jackson Smile #24198
π Documentation
- π Improve documentation for
@Autowired
/@Value
in@Configuration
classes #24585 - π Fix formatting in webflux-webclient.adoc #24578
- Clarify AbstractResourceBasedMessageSource.setCacheMillis vs java.util.ResourceBundle #24563
- π Correct Ant-style Patterns example in documentation #24552
- π Fix javadoc in DependencyDescriptor #24551
- π Correct formatting of MessageSource example in documentation #24531
- β‘οΈ Update advice on RestTemplate #24503
- π Upgrade to Spring Asciidoctor Extensions 0.4.0.RELEASE #24481
- π Fix typo in StringUtils class #24471
- π Polish documentation format #24460
- π Fix Asciidoctor Warnings #24427
- Reconsider recommended connection pools #24405
- π Improve default experience of data binding from HTML date and time input fields #24370
- π Document supported characters for identifiers in SpEL expressions #24359
- Document that
@Validated
results in the use of a proxy and warn users about the side-effects #24338 - π Deprecate use of path extensions in request mapping and content negotiation #24179
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to RSocket 1.0.0-RC6 #24482
- β¬οΈ Upgrade to ASM 7.3 #24438
- β¬οΈ Upgrade to Reactor Dysprosium SR5 #24355
- β¬οΈ Upgrade to JUnit Jupiter 5.6 #24299
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.3.RELEASE Changes
January 14, 2020π± βοΈ New Features
- β‘οΈ Update throwable to SQLException #24337
- β‘οΈ Update CORS support #24327
- π Improve exception message in AopContext.currentProxy() #24321
- Trim line in LineInfo only once #24310
- π Merge getCallableInterceptors and getDeferredResultInterceptors #24305
- β‘οΈ Optimize SimpleAliasRegistry hasAlias implementation #24295
- π Improve ExposeInvocationInterceptor exception message #24293
- β Add ContentLength support for InputStreamResource created in ResourceHttpMessageConverter and ResourceDecoder #24292
- 0οΈβ£ StringHttpMessageConverter addDefaultHeaders() should check media type for wildcard before setting it into headers #24283
- β Add fast path for ClassUtils.hasMethod #24282
- π Support headers with multiple values in ResponseStatusException #24261
- β Remove quality parameter from chosen media type in WebFlux responses #24239
- β Remove Content-* response headers before error handling in WebFlux #24238
- Reuse InputStream for ResourceRegionHttpMessageConverter #24214
- π Un-deprecate PathResource (for java.nio.file.Path resolution in createRelative) #24211
- π Simplify AdvisedSupport.removeAdvisor() #24205
- β Add BeanPropertyRowMapper.newInstance(mappedClass, conversionService) #24195
- Short-circuit in AbstractBeanDefinition.equals() #24185
- π¦ Expose local address in reactive ServerHttpRequest #24174
- π Improve exception message for mixed explicit and implicit aliases with
@AliasFor
#24168 - Hoist constant result of SerializableTypeWrapper.unwrap() out of loop #24167
- β Add "application/*+xml" as supported media type to XML decoders #24164
- Hoist Class.getName() from String concatenation to dodge an issue related to profile pollution #24153
- β‘οΈ Let UriUtils.encodeβ¦(β¦) methods optimize for sources without the need to be encoded #24152
- β Add accessor for logPrefix in ClientResponse to allow tying a ClientRequest to a ClientResponse #24146
- π Support variable resolution of wildcard types #24145
- β WebTestClientExtensions.expectBody doesn't work for generic types #24142
- β Add firstElement to CollectionUtils #24135
- π Improve configuration API of ClientCodecConfigurer.CustomCodecs #24124
- Introduce BeanNameGenerator based on fully qualified class name #24114
- π ContentDisposition cannot parse encoded filename with leading space #24112
- β Add option to encode MultiValueMap of query params #24043
- AbstractMessageConverterMethodProcessor results in 406 with "Accept: /" when
@RequestMapping
produces condition determined the content type #23287 - π Allow testing with any value for Content-Type and Accept header in MockHttpServletRequestBuilder #2079
π± π Bug Fixes
- StringDecoder buffer leak related to maxInMemorySize limit #24339
- π Cloning a WebClient.Builder instance does not copy strategiesConfigurers #24329
- SimpleKey contains invalid hashcode on deserialization when parameters include an enum #24320
- ServerSentEventHttpMessageReader does not respect maxInMemorySize and is always limited to 256k messages #24312
- Unsafe double-checked locking in SpelExpression#compileExpression #24265
- Ensure CORS processing does not add Vary header twice on async requests #24223
- π Escape quotes in filename in ContentDisposition.Builder when charset not specified #24220
- ClassUtils.getInterfaceMethodIfPossible overhead in cached methods for SpEL key/condition expressions #24206
- ClientCodecConfigurer drops MultipartHttpMessageWriter.partWriters when mutated #24194
- Regression: annotation searches no longer handle exceptions #24188
- WebFlux may send incomplete response if the session persistence fails #24186
- π Fix RSocketRequester Coroutines extensions #24166
- Regression: prototype
@ControllerAdvice
beans should not be cached #24157 - Ensure MvcUriComponentsBuilder generates correct URL from type-level mapping without leading slash #24143
- Annotation scanning in enclosing class hierarchy results in NoClassDefFound #24136
- ReadCancellationException does not play well with
onErrorContinue
#24125 - StringHttpMessageConverter lost a fix that assumed charset UTF-8 for "application/json" #24123
- π Regression: default values for implicit aliases no longer honored in MergedAnnotations #24110
- Functional Bean Definition DSL for noarg functions #23395
π Documentation
- π Docs should warn against split URL handling across handler mappings #24304
- [spring expression doc] symbolic logical operators #24276
- π Fix example in RSocket docs #24245
- MappingJackson2MessageConverter: fix javadoc typo #24200
- π Fix typos in DataBufferUtils Javadocs #24160
- TOC generated by asciidoc for core-beans.adoc is truncated #24132
- π WebFlux documentation states incorrectly that BindingResult is supported after
@RequestBody
#22997
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to Reactor Dysprosium SR3 #24349
- β¬οΈ Upgrade to Gradle build scan plugin 3.1.1 #24252
- π Upgrade to nohttp plugin 0.0.4.RELEASE #24251
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.2.RELEASE Changes
December 03, 2019π± βοΈ New Features
- 0οΈβ£ 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
- 0οΈβ£ 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
- 0οΈβ£ 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
-
v5.2.1.RELEASE Changes
November 02, 2019π± βοΈ New Features
- π Support for limits on input stream processing in WebFlux codecs #23884
- π Race condition affecting performance in AbstractJaxb2HttpMessageConverter - JAXBContext creation #23879
- β Add RSocketRequester retrieveAndAwaitOrNull extension #23874
- π Support unidirectional
@AliasFor
attribute mapping within an annotation #23834 - π Allow setting primary flag on BeanDefinitionBuilder #23794
- Introduce sessionAttributeDoesNotExist in RequestResultMatchers #23756
- β EventPublishingTestExecutionListener is not included in JUnit 4 and TestNG base classes #23748
- β‘οΈ Optimize Connection.setReadOnly(false) in DataSourceUtils.resetConnectionAfterTransaction(β¦) #23747
- Handling of ResponseStatusException to also include setting of response headers #23741
- π Fix OkHttp3ClientHttpRequestFactory shutdown flow #23628
π± π Bug Fixes
- Reorder date formatting converter in registrar #23893
- π§ Revisit
@Configuration
(proxyBeanMethods = false) with qualified injection points #23887 - π Fixing NPE in AbstractNamedValueMethodArgumentResolver #23882
- WebClient onStatus order changed #23880
- TransactionalOperator::transactional does not close the transaction when cancelled #23864
- β Remove unused type parameter declarations in XpathRequestMatchers #23860
- β Remove unused type parameter declarations in MockMvc #23858
- Repeatable annotation container no longer found on custom composed annotation #23856
- π§ Missing CORS headers defined in SockJS CORS configuration #23843
- Consider target transaction manager for traditional vs reactive transaction decision #23832
- β¬οΈ InaccessibleObjectException after upgrading to Framework 5.2 #23829
- Incorrect value of the MediaType.APPLICATION_PROBLEM_JSON_UTF8 #23825
- π Autowiring performance degradation due to 5.2's MethodParameter.getParameterType() implementation #23792
- π€‘ Preserve expires attribute in MockCookie #23769
- π§ Regression: attribute override configured via
@AliasFor
no longer honored in annotation hierarchy #23767 - spring 5.2 dist.zip naming issue #23745
- π€‘ MockServletContext should treat InvalidPathException like an IOException #23717
π Documentation
- π Update Spring Boot references in testing documentation #23848
- π Fix typo in rsocket doc #23762
- π Fixes broken links to dev.java.net #23746
- π Fix typo in web-uris doc #23739
- π Update documentation for importing projects into Eclipse #23706
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to Reactor Dysprosium-SR1 #23871
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
-
v5.2.0.RELEASE
September 30, 2019