Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
4.2.8 Release
⭐ New Features
- When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998
- Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
@RequestMapping
consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021- UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
- Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
- Avoid repeated getParameterType calls for setNull with Oracle 12c driver [SPR-14574] #19143
- Improve performance of assertion in StompSubProtocolHandler [SPR-14624] #19191
- Protect against getParameterType cursor leak with Oracle 12c JDBC driver [SPR-14629] #19196
- Improve performance of StompCommand.getMessageType() [SPR-14636] #19203
- CommonsMultipartResolver should explicitly convert FileSizeLimitExceededException next to SizeLimitExceededException [SPR-14638] #19204
- Default async request timeout handling does not work with Jetty 9.x [SPR-14669] #19233
- Better Exception Message for JMS Jackson Converter Error [SPR-14672] #19236
- AbstractPollingMessageListenerContainer's workaround for Tibco causes performance delays during ems failover [SPR-14697] #19261
- ScriptTemplateView should check template resource [SPR-14729] #19294
🪲 Bug Fixes
- Constructor sets the source incorrectly in org.springframework.beans.PropertyValue [SPR-8337] #12985
- ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977
- Regression: Insert statement fails with inconsistent datatypes on Oracle 12c driver [SPR-14191] #18764
- SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
- MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
- CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
- Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
- MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
- ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
- LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
- Do not fail with a circular
@Import
error caused by an@ComponentScan
[SPR-14517] #19086 - StackOverflowError for advisor search against factory-bean reference to FactoryBean [SPR-14551] #19119
- ArrayIndexOutOfBoundsException in MethodBasedEvaluationContext [SPR-14554] #19122
- SockJS heartbeat is causing application send Message to fail similar to (SPR-14356) [SPR-14564] #19133
- StompSubProtocolHandler responds with ERROR (Session closed.) on DISCONNECT when using SimpleBrokerMessageHandler [SPR-14568] #19137
- Fix assertions in StompHeaderAccessor [SPR-14625] #19192
- ResolvableType for a raw type is not assignable to generic types of the same class [SPR-14648] #19214
- TypeConverterSupport does not propagate custom exceptions anymore [SPR-14661] #19225
- NPE during websocket disconnect [SPR-14703] #19268
- StringUtils.parseLocaleString(): does not parse locale string in java 7 for Serbian (Latin) [SPR-14718] #19283
- exception during websocket client close [SPR-14721] #19286
📔 Documentation
- NoHandlerFoundException is mapped to 404 twice [SPR-14598] #19167
5.0 M1 Release
⭐ New Features
- Revise encoding steps towards use of JDK Charset and StandardCharsets [SPR-14492] #19061
- Avoid deprecated Class.newInstance in favor of constructor-based instantiation [SPR-14486] #19055
- Drop mock.staticmock package from spring-aspects [SPR-14485] #19054
- Resource.isFile() and JAF MediaTypeFactory [SPR-14484] #19053
- Comprehensive Servlet 3.1 support in spring-web and spring-test [SPR-14467] #19036
- Support suppressed exceptions in the TestContext framework [SPR-14459] #19028
- Introduce Supplier message support in org.springframework.util.Assert [SPR-14450] #19020
- Core Spring interfaces declared with Java 8 default methods and
@FunctionalInterface
markers [SPR-14432] #19003 - Reactive web module [SPR-14161] #18733
- HTTP cookie abstraction [SPR-14160] #18732
- Composition adapters for Reactive Streams [SPR-14159] #18731
- Reactive serialization & deserialization [SPR-14156] #18728
- ByteBuffer abstraction [SPR-14155] #18727
- Reactive Web client [SPR-14154] #18726
- Reactive server web support [SPR-14153] #18725
- Reactive client and server HTTP adapters [SPR-14152] #18724
- Introduce support for creating a MethodParameter from a Java 8 Parameter [SPR-14055] #18627
- XMLUnit 2.x support [SPR-14043] #18615
- Better synchronization in ConcurrentMapCache [SPR-13810] #18383
- ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4 [SPR-13589] #18166
- Introduce support for JUnit 5 in the TestContext framework [SPR-13575] #18151
- Validate method parameter index via Java 8 Method.getParameterCount() [SPR-13456] #18036
- Introduce before/after test execution callbacks in the TestContext framework [SPR-4365] #9043
🪲 Bug Fixes
- ReactorClientHttpConnector assumes that URI.port is valid [SPR-14477] #19046
- Misleading exception message for invalid MethodParameter instance [SPR-14466] #19035
📔 Documentation
- Move "What's New" reference manual chapter to the wiki [SPR-14449] #19019
4.3.2 Release
⭐ New Features
- Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
- Cache limit for destination cache in SimpleBrokerMessageHandler can't be altered [SPR-14516] #19085
- HeaderContentNegotiationStrategy does not support multiple Accept headers [SPR-14506] #19075
- Non-helpful NoSuchBeanDefinitionException rather than BeanNotOfRequiredTypeException due to creation order [SPR-14504] #19073
- DataSource adapters should expose setCatalog/setSchema next to setUsername/setPassword [SPR-14501] #19070
- GenericSqlQuery configured with RowMapper instance [SPR-14489] #19058
- SerializableTypeWrapper should reobtain type accessors from declaring interface [SPR-14487] #19056
- Avoid dependency on WebUtils for extracting file extension [SPR-14479] #19048
- Workaround for Hibernate bug: setCurrentTenantIdentifierResolver not respected [SPR-14476] #19045
- Missing tests for async request handling with StreamingResponseBody [SPR-14456] #19025
- Hibernate5 LocalSessionFactoryBean does not translate javax.persistence exceptions [SPR-14455] #19024
- UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
@RequestMapping
consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021- AnnotationMetadataReadingVisitor does not honour
@AliasFor
[SPR-14437] #19008 - Add PathEditor to enable conversion to java.nio.file.Path [SPR-14436] #19007
- Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
- When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998
🪲 Bug Fixes
- Do not fail with a circular
@Import
error caused by an@ComponentScan
[SPR-14517] #19086 - Transaction manager bean in TransactionInterceptor retained after JUnit test class completes [SPR-14511] #19080
- LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
- ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
- Mis-proxying of Mockito mock and poor diagnostics for type mismatch on proxy injection [SPR-14478] #19047
- NPE while try to use abstract beans with optional properties [SPR-14474] #19043
- Jackson 2.6.x -> 2.7 deserialize generic fails when calling Spring controller [SPR-14470] #19039
- MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
- Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
- CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
- MultipartResolutionDelegate in Servlet 2.5 environments not working correctly [SPR-14461] #19030
- Flush exception translation not working anymore with Hibernate 5.2 [SPR-14457] #19026
- MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
- Regression: TestContextManager no longer tracks after-class exception with log level lower than WARN [SPR-14447] #19017
- NoOpCacheManager and
@Cacheable
(sync=true) [SPR-14445] #19015 - SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
- HibernateTemplate not binary-compatible with Hibernate 5.0/5.1's Query type [SPR-14425] #18996
- ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977
📔 Documentation
- Documentation still favoring velocity but it is deprecated in 4.3 [SPR-14460] #19029
4.3.1 Release
⭐ New Features
@MessageExceptionHandler
should match cause as well (analogous to@ExceptionHandler
) [SPR-14424] #18995- Defensively access deprecated AbstractHttpClient class from Apache HttpComponents [SPR-14422] #18993
- Convert comma-separated string into list of classes analogous to existing support for class array [SPR-14415] #18986
- Add BasicAuthorizationInterceptor [SPR-14412] #18983
- Enforce UTF-8 encoding in SseEmitter [SPR-14407] #18978
- MvcUriComponentsBuilder should not include empty query parameters in build URI [SPR-14405] #18976
- RequestMappingInfoHandlerMapping.handleNoMatch throws 415 when it should throw 406 [SPR-14397] #18969
- Improve error handling when resolving message payloads [SPR-14394] #18967
- Improve warn logging in AbstractHandlerExceptionResolver [SPR-14392] #18965
- STOMP 1.1 protocol support for client [SPR-14391] #18964
- Multiple load-time-weaver elements cause repeated addition of AspectJ transformer [SPR-14373] #18946
- ForwardedHeaderFilter should support case insensitive header name [SPR-14372] #18945
- Revise PropertySourcesPropertyResolver's default logging and customizability [SPR-14370] #18943
@WebAppConfiguration
fails with ServletServerContainerFactoryBean in the ApplicationContext [SPR-14367] #18939- ReflectionTestUtils should defensively invoke toString() on target objects [SPR-14363] #18935
- Provide API to expose Spring MVC's ability to match requests [SPR-14321] #18893
- Add exposeProxy to
@EnableAspectJAutoProxy
[SPR-10454] #15087
🪲 Bug Fixes
- Return type implementing DeferredResult is rejected with exception [SPR-14423] #18994
- Cache infrastructure using AspectJ is not properly configured [SPR-14413] #18984
- Possible issue with handling http method OPTIONS [SPR-14410] #18981
- Regression: DefaultCorsProcessor ignores already present Access-Control-Allow-Origin header [SPR-14406] #18977
- InjectionPoint not propagated by AutowiredAnnotationBeanPostProcessor's cached argument resolution [SPR-14400] #18971
- JDBC Connection to reset not identical to originally prepared Connection with Hibernate 5.2 [SPR-14393] #18966
@JmsListener
endpoint@Payload
resolution fails due to interplay of new LazyResolutionMessage and MessagingMessageConverterAdapter [SPR-14389] #18962- Deadlock while creating a new thread on bean initialization with transactional code invocation [SPR-14388] #18961
- HEAD/GET in MVC not fully backward-compatible [SPR-14383] #18956
- Background initialization for Hibernate SessionFactory breaks transaction management [SPR-14379] #18952
- Regression: Static JS files served as 'application/octet-stream' instead of 'application/javascript' [SPR-14368] #18940
- NoSuchMethodError for SessionFactoryImplementor.getProperties() with Hibernate 5.1 [SPR-14365] #18937
- Hibernate 5 SpringSessionSynchronization calls Session.getFlushMode() directly instead of using SessionFactoryUtils.getFlushMode(session) [SPR-14364] #18936
- Failure to resolve
@RequestMapping
method arguments in Servlet 2.5 environments [SPR-14358] #18930 - SockJs heartbeat during message send closes socket [SPR-14356] #18928
📔 Documentation
4.2.7 Release
⭐ New Features
- SimpleBrokerMessageHandler makes an assertion about the type of the MessageHeaderAccessor, but doesn't seem to care [SPR-14279] #18851
- Spring Web should process requests with empty/invalid mime type [SPR-14309] #18881
- Consistent Error handling in MessageChannel implementations [SPR-14323] #18895
- Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
- Improve error handling when resolving message payloads [SPR-14394] #18967
🪲 Bug Fixes
- Meta-
@Conditional
lookup does not work consistently with ASM [SPR-14257] #18829 - Memory leak on STOMP broker connections that fail before heartbeats start [SPR-14266] #18838
- markBeanAsCreated does not clear merged bean definition in a thread-safe fashion [SPR-14269] #18841
@Bean
not detected in extended interface [SPR-14288] #18860- StringIndexOutOfBoundsException when calling BeanWrapperImpl.setPropertyValue("[']", "foobar") [SPR-14293] #18865
- SettableListenableFuture.setException(Throwable) doesn't work for Error [SPR-14298] #18870
- Cannot put tiles:definition inside tiles:putAttribute [SPR-14311] #18883
- After-completion callback not triggered for custom Throwable subclass [SPR-14329] #18901
- EventListenerMethodProcessor resolves classes (by MethodIntrospector) of lazy beans causing NoClassDefFoundError [SPR-14330] #18902
- Race condition in handling of
@Lookup
annotation [SPR-14333] #18905 - AllEncompassingFormHttpMessageConverter ignores JAXB XML when Jackson used for JSON [SPR-14336] #18908
- Different error codes on same formatter registered in different ways [SPR-14345] #18917
- SockJs heartbeat during message send closes socket [SPR-14356] #18928
- Deadlock while creating a new thread on bean initialization with transactional code invocation [SPR-14388] #18961
- Cache infrastructure using AspectJ is not properly configured [SPR-14413] #18984
- Return type implementing DeferredResult is rejected with exception [SPR-14423] #18994
- NPE was occurred at WebUtils.isSameOrigin [SPR-14305] #18877
- HtmlUnitRequestBuilder should decode request parameter names [SPR-14177] #18748
📔 Documentation
4.3 GA Release
⭐ New Features
- CorsConfiguration checkHeaders wildcard ALL should allow matching empty strings header [SPR-14617] #19184
- AsyncRestTemplate changes in SPR-13413 made its harder to detect Client/Server errors [SPR-14353] #18925
- Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
- SpringHandlerInstantiator should support all HandlerInstantiator-provided factory methods [SPR-14347] #18919
- Caching annotation on interface are ignored when cglib proxies are used [SPR-14343] #18915
- FormHttpMessageConverter should use configured charset (by default UTF-8) for "text-plain" MIME part conversion as well [SPR-14338] #18910
- Jackson2ObjectMapperBuilder/FactoryBean should accept deserializers by handled type as well [SPR-14337] #18909
- Support for Hibernate ORM 5.2 [SPR-14327] #18899
- Consistent Error handling in MessageChannel implementations [SPR-14323] #18895
- Allow constructor injection at CompositeDatabasePopulator [SPR-14313] #18885
- AcceptHeaderLocaleResolver should allow to define a default Locale [SPR-14312] #18884
- Spring Web should process requests with empty/invalid mime type [SPR-14309] #18881
- MockRestServiceServerBuilder cannot be cached [SPR-14306] #18878
- negating specific media type in RequestMapping causes requests with no Accept header to fail [SPR-14299] #18871
- All SockJS fallback options fail if request.getRemotePort() is not forwarded by proxy [SPR-14295] #18867
@ExceptionHandler
should match cause as well (e.g. for exception thrown from argument formatter) [SPR-14291] #18863- Poor comparison for ContentRequestMatchers#bytes [SPR-14281] #18853
- SimpleBrokerMessageHandler makes an assertion about the type of the MessageHeaderAccessor, but doesn't seem to care [SPR-14279] #18851
- Apply
@SafeVarargs
at MockRestRequestMatchers#header [SPR-14278] #18850 - ForwardedHeaderFilter could support X-Forwarded-Prefix as well [SPR-14270] #18842
- JettyWebSocketSession.send*Message() can throw Jetty-specific WebSocketException instead of IOException [SPR-14267] #18839
- MockMvcWebConnection should update cookie manager with MockHttpServletResponse cookies [SPR-14265] #18837
- Add database product name for SAP HANA [SPR-14261] #18833
- DefaultPersistenceUnitManager.determineDefaultPersistenceUnitRootUrl fails when run from a shaded jar [SPR-14246] #18819
- Add option to log headers to AbstractRequestLoggingFilter [SPR-14245] #18818
- BeanPropertyRowMapper should use ConversionService for date-time support [SPR-13888] #18461
- SpEl does not support conjunction (&&) and disjunction (||) logic [SPR-7652] #12308
🪲 Bug Fixes
- Different error codes on same formatter registered in different ways [SPR-14345] #18917
- AllEncompassingFormHttpMessageConverter ignores JAXB XML when Jackson used for JSON [SPR-14336] #18908
- Race condition in handling of
@Lookup
annotation [SPR-14333] #18905 - EventListenerMethodProcessor resolves classes (by MethodIntrospector) of lazy beans causing NoClassDefFoundError [SPR-14330] #18902
- After-completion callback not triggered for custom Throwable subclass [SPR-14329] #18901
- Headers were lost when returning a null StreamingResponseBody within a ResponseEntity [SPR-14315] #18887
- ConcurrentMapCacheManager's storeByValue does not pick up ClassLoader [SPR-14314] #18886
- Cannot put tiles:definition inside tiles:putAttribute [SPR-14311] #18883
- SettableListenableFuture.setException(Throwable) doesn't work for Error [SPR-14298] #18870
@MatrixVariable
Map<String, String> params [SPR-14294] #18866- StringIndexOutOfBoundsException when calling BeanWrapperImpl.setPropertyValue("[']", "foobar") [SPR-14293] #18865
@Bean
not detected in extended interface [SPR-14288] #18860- Scheduled tasks aren't cancelled on ScheduledTaskRegistrar destruction anymore [SPR-14286] #18858
- markBeanAsCreated does not clear merged bean definition in a thread-safe fashion [SPR-14269] #18841
- Memory leak on STOMP broker connections that fail before heartbeats start [SPR-14266] #18838
- Meta-
@Conditional
lookup does not work consistently with ASM [SPR-14257] #18829
📔 Documentation
- Doc: Constructor injection of arrays and collections [SPR-14332] #18904
- Improve reference documentation for Task Execution and Scheduling about bean scopes [SPR-14167] #18739
- Reference Documentation: Why does not exist an XML configuration version for
@Async
? [SPR-14164] #18736 - Document composed annotations for
@RequestMapping
in the reference manual [SPR-13995] #18568 - Document composed annotations for web scopes in the reference manual [SPR-13994] #18567
- Doc:
@RestController
works only with RequestMappingHandlerAdapter [SPR-13945] #18517 - Document TestContext bootstrap strategy in the reference manual [SPR-11683] #16306
- MultipartFilter documentation [SPR-11373] #16000
4.3 RC2 Release
⭐ New Features
- SpEL Compiler: problems using primitives with instanceof operator [SPR-14250] #18823
- Timeout problem with Spring and Atomikos [SPR-14239] #18812
- Allow
@Cacheable
method to return java.util.Optional variant of cached value [SPR-14230] #18804 - Add get/set-IfUnmodifiedSince, get/set-IfMatch methods on HttpHeaders [SPR-14228] #18802
- Behavior of checkNotModified(String etag, long lastModifiedTimestamp) does not match HTTP recommendations [SPR-14224] #18798
- Consistent handling of multi-valued headers in HttpHeaders [SPR-14223] #18797
- Refactor HTTP Range support with a new ResourceRegion class [SPR-14221] #18795
- ServletWebRequest.isEtagNotModified does not support commas and spaces in client ETags [SPR-14216] #18790
- Support non-blocking receiveTimeout in AbstractPollingMessageListenerContainer [SPR-14212] #18786
- ScriptTemplateView can't load web-app resources [SPR-14210] #18784
- Support manual ACK and NACK in Stomp Client [SPR-14208] #18782
- HttpSessionRequiredException should have a getter for 'expected session attribute' [SPR-14206] #18780
- ResponseEntity should allow the usage of unassigned HTTP status codes [SPR-14205] #18779
- PathMatchingResourcePatternResolver should not re-resolve root URLs [SPR-14202] #18776
@RequestHeader
doesn't accept RFC-1123 for conversion to java.time.Instant [SPR-14201] #18775- DefaultMessageListenerContainer doesn't shutdown gracefully if long recovery interval is set [SPR-14200] #18774
- Java 8 default methods not detected as bean properties [SPR-14198] #18772
- Add text/markdown to MediaType [SPR-14192] #18765
- Support test annotations on interfaces [SPR-14184] #18755
- Support
@BeforeTransaction
and@AfterTransaction
on interface default methods [SPR-14183] #18754 - Let
@Scheduled
work with a non-void method how is possible with task:scheduled [SPR-14175] #18746 - Rename MimeType's getCharSet() to getCharset() [SPR-14172] #18744
- Improve failure metadata that is available from BeanInstantiationException [SPR-14166] #18738
- RestTemplate: Support default urlVariables at template level [SPR-14147] #18719
- Placeholder resolution for annotation attributes is not active by default [SPR-14140] #18712
- Add method to TestPropertySourceUtils to add properties files directly to the environment [SPR-14131] #18703
- Improve MimeTypeUtils to handle the case of only a delimiter passed [SPR-14124] #18696
- Unable to define empty java.util.Optional bean in spring xml [SPR-14121] #18693
- Possibility to configure a custom WebJarAssetLocator [SPR-14092] #18664
- Proper load-time weaving support for Hibernate 5 [SPR-13886] #18459
- AbstractAdvisorAutoProxyCreator should consistently detect package-visible methods [SPR-14174] #17890
@Scheduled
methods in@Lazy
beans are not scheduled [SPR-12872] #17470- Improve handling of missing JSF session in SessionScope [SPR-12402] #17010
- ScheduledAnnotationBeanPostProcessor should unregister tasks on destruction of individual beans [SPR-12216] #16830
- Detect LoadTimeWeaver bean when declared through
@Bean
method as well [SPR-10856] #15483
🪲 Bug Fixes
- AntPathMatcher Regression for trimTokens=true [SPR-14247] #18820
- CharacterEncodingFilter should have an option to avoid forcing encoding on responses [SPR-14240] #18813
- Annotated class with
@SendToUser
overrides@SendTo
on method [SPR-14238] #18811 - Regression: Handler method detection reporting ambiguous methods for explicit HEAD mapping [SPR-14182] #18753
- MockWebResponseBuilder can't handle null domain in cookie [SPR-14169] #18741
- AntPathMatcher regression in 4.3 RC1 [SPR-14141] #18713
📔 Documentation
4.2.6 Release
⭐ New Features
- Warn about non-static BeanDefinitionRegistryPostProcessor declarations on
@Configuration
classes [SPR-14234] #18808 - ApplicationListenerDetector should prevent serialization of its ApplicationContext reference [SPR-14214] #18788
- Avoid hard logging of WebApplicationInitializer classes [SPR-14213] #18787
- three constructors in the org.springframework.expression.spel.ast package are not public [SPR-14181] #18752
- MappingJackson2HttpMessageConverter should not always log a warning [SPR-14163] #18735
- Print EhCache cache manager name when initializing [SPR-14110] #18682
- AbstractStaxXMLReader should recognize standard features such as the string interning feature [SPR-14047] #18619
- Prevent Quartz XSD from being fetched from the Internet [SPR-13706] #18281
🪲 Bug Fixes
- AsyncResult calls SuccessCallback when it should call FailureCallback [SPR-14249] #18822
- AbstractRequestLoggingFilter appends null query string [SPR-14244] #18817
- Deadlock possible with AspectJ aspects and multi-threading [SPR-14241] #18814
- DefaultLifecycleProcessor hangs on shutdown when stopping with internalJmsListenerEndpointRegistry [SPR-14233] #18807
- Reactor2TcpClient does not remove TcpClient instances after connection closed [SPR-14231] #18805
- Reactor2TcpClient leaks threads on shutdown [SPR-14229] #18803
- SocketUtils fails to find a port when providing only two ports [SPR-14211] #18785
- FastByteArrayInputStream.read returns incorrect result [SPR-14209] #18783
- WebSocketMessageBrokerStats does not work unless SockJS is enabled with WebSocket XML namespace [SPR-14190] #18763
- NPE thrown when calling methods with an empty
@Caching
annotation [SPR-14162] #18734 - SimpleTransactionScope does not suspend and resume its scoped objects [SPR-14148] #18720
- Regression: If-Modified-Since value of zero not accepted anymore [SPR-14144] #18716
- WebSocketSessionDecorator.sendMessage does not delegate [SPR-14139] #18711
- AbstractWebSocketSession.sendMessage race condition [SPR-14138] #18710
- Java boolean is not handled correctly when used with Oracle JDBC driver [SPR-14116] #18688
- TransportHandlingSockJsService.scheduleSessionTask() doesn't log removed sessions [SPR-14111] #18683
- Wrong detection of event type on ApplicationListener<> when using lambdas (ClassCast Exception) [SPR-14109] #18681
- SockJS / XHR Polling does not reset connection for heartbeat [SPR-14107] #18679
@JmsListener
with autoStartup=false will never start [SPR-14105] #18677@RequestHeader
HttpHeaders fails with NPE against null header value [SPR-14091] #18663- Type annotations cause ArrayIndexOutOfBoundsException in ASM ClassReader [SPR-14089] #18661
- DefaultCorsProcessor's origin comparison is restrictive and inefficient [SPR-14080] #18652
- Reset Expires header in WebContentGenerator when caching resources [SPR-14053] #18625
- ModelAndView is replaced when a RedirectView is used [SPR-14045] #18617
- Regression: Early instantiation of a bean prevents proxying for
@Async
in 4.2.x but works in 4.1.x [SPR-14030] #18602 - Wrong ResolvableType for Event not extending from ApplicationEvent [SPR-14029] #18601
- springUrl Velocity macro should encode the given URI using the response [SPR-14027] #18599
- Scripted beans not updated after a script compilation error in getScriptedObjectType [SPR-14007] #18579
- Regression: ResourceHandlerRegistration setCachePeriod doesn't set the correct response header anymore [SPR-14005] #18577
- Regression: RequestMappingHandlerAdapter with synchronizeOnSession=true calls invokeHandlerMethod twice [SPR-13999] #18572
- LinkedCaseInsensitiveMap doesn't implement getOrDefault properly [SPR-13981] #18553
- First new line character is removed when use form:textarea tag [SPR-13503] #18081
📔 Documentation
- Section 19.3.2 of reference mentions Hibernate 3 should be just Hibernate [SPR-14176] #18747
@EnableScheduling
javadoc has incomplete XML example [SPR-14145] #18717- documentation : SpEL / Expression support for defining bean definitions / XML based configuration (9.4.1) [SPR-14074] #18646
- Wrong RFC reference in Base64Utils documentation [SPR-14067] #18639
3.2.17 Release
⭐ New Features
- SimpleTriggerFactoryBean and CronTriggerFactoryBean fail without jobDetail [SPR-13604] #18182
- Prevent Quartz XSD from being fetched from the Internet [SPR-13706] #18281
- Backport MVC config path config options to 3.2.x [SPR-14186] #18757
🪲 Bug Fixes
- Handle RejectedExecutionException in WebAsyncManager [SPR-13836] #18409
- NullPointerException while building error message in InvocableHandlerMethod [SPR-13917] #18491
- ReflectiveMethodResolver chooses parent class over child for static methods [SPR-13918] #18492
- AbstractMarshaller's DocumentBuilderFactory instance may be used by several threads simultaneously [SPR-13935] #18507
- TimerManagerTaskScheduler.TimerScheduledFuture.getDelay is inverted [SPR-13977] #18549
- Scripted beans not updated after a script compilation error in getScriptedObjectType [SPR-14007] #18579
- ModelAndView is replaced when a RedirectView is used [SPR-14045] #18617
@RequestHeader
HttpHeaders fails with NPE against null header value [SPR-14091] #18663- NPE thrown when calling methods with an empty
@Caching
annotation [SPR-14162] #18734 - Deadlock possible with AspectJ aspects and multi-threading [SPR-14241] #18814
- AbstractRequestLoggingFilter appends null query string [SPR-14244] #18817
📔 Documentation
4.3 RC1 Release
⭐ New Features
- Scoped proxies are fragile with respect to serialization [SPR-14117] #18689
- Auto-detect Kotlin Jackson module [SPR-14108] #18680
- Make localized field names lookup extensible in JSR-303 validation messages [SPR-14104] #18676
- LocalValidatorFactoryBean should expose a hook for using a custom ValidationProviderResolver [SPR-14100] #18672
- AnnotationTransactionAttributeSource should never apply to GroovyObject methods [SPR-14095] #18667
- AsyncRestTemplate should trigger no-output HTTP requests immediately as well [SPR-14093] #18665
- Refine TestPropertySourceUtils for Spring Boot usage [SPR-14088] #18660
- PathMatchingResourcePatternResolver should enforce consistent alphabetical sorting of directory content [SPR-14085] #18657
- Add setMultiTenantConnectionProvider to org.springframework.orm.hibernate5.LocalSessionFactoryBean [SPR-14072] #18644
- Support for HTTP Vary configuration (e.g. in reaction to locale-based rendering) [SPR-14070] #18642
- MockMvcWebConnection should share CookieManager with HtmlUnit driver [SPR-14066] #18638
- Allow
@Autowired
to be declared on parameters [SPR-14057] #18629 - Support creation of SynthesizingMethodParameter for constructor parameter [SPR-14054] #18626
- MockHttpServletResponse should convert Cookies into Set-Cookie header [SPR-14051] #18623
- ReflectionTestUtils should automatically unwrap proxies [SPR-14050] #18622
- DefaultUserDestinationResolver does not support "." separator convention [SPR-14044] #18616
- Reject
@ManagedResource
a on class which is not public [SPR-14042] #18614 - BigDecimal to Integer/Short/Byte should overflow like BigDecimal to Long does [SPR-14041] #18613
- HTTP persistent connections for HTTP Invoker and RestTemplate [SPR-14040] #18612
- Support conversion between Enum and Integer [SPR-14039] #18611
- Provide flag to allow ServletTestExecutionListener to run without
@WebAppConfiguration
[SPR-14035] #18607 - InjectionPoint/DependencyDescriptor as injectable argument for
@Bean
methods [SPR-14033] #18605 - Adding ability to read result sets row-by-row for MySql driver [SPR-14028] #18600
- Reconsider enablement of JNDIPropertySource by default [SPR-14026] #18598
- Support for OkHttp 3 [SPR-14024] #18596
- Remove double slash from resolved WebJar resources [SPR-14018] #18590
- Custom key classes for HashMap should implement Comparable [SPR-14017] #18589
- Make TestContextManager.getTestContext() public [SPR-14011] #18583
- Support placeholder for
@CrossOrigin
[SPR-14010] #18582 - Allow
@ComponentScan
custom filters to implement *Aware interfaces [SPR-14009] #18581 - Allow non-public
@Transactional
test methods [SPR-14000] #18573 - Introduce ContextCustomizer API in the TestContext framework [SPR-13998] #18571
- Support
@BeforeTransaction
and AfterTransaction on non-public methods [SPR-13997] #18570 - Validator is not set after initializing web socket MessageBroker from xml configuration [SPR-13996] #18569
- Introduce common composed annotations for web scopes [SPR-13993] #18566
- Introduce common composed annotations for
@RequestMapping
[SPR-13992] #18565 - Remove
@BootstrapWith
from@WebAppConfiguration
[SPR-13991] #18564 - Unique XML-specified constructor not accepted in case of unresolvable name [SPR-13987] #18559
- Consistent resolution of factory method exceptions [SPR-13985] #18557
- Support JacksonXmlModule.setDefaultUseWrapper [SPR-13975] #18547
- Support repeatable annotations as composed annotations [SPR-13973] #18545
- Allow a single element to override an array attribute in a meta-annotation [SPR-13972] #18544
- Improve CacheOperation equals/hashCode implementation performance [SPR-13970] #18542
- Allow spring.factories to load package private classes [SPR-13969] #18541
- Improve core container exception meta-data [SPR-13968] #18540
- TestContextManager.afterTestMethod doesn't handle java.lang.Error! [SPR-13961] #18534
- Consistent behavior for unwrap(null) on JPA and Bean Validation wrappers [SPR-13960] #18533
- ObjectFactory lacks method for getting bean with specified constructor arguments [SPR-13956] #18529
- Allow
@ContextConfiguration
to be omitted [SPR-13955] #18528 - Provide shorter 'alias' for SpringJUnit4ClassRunner [SPR-13954] #18527
@RequestHeader
name/value does not accept placeholders [SPR-13952] #18525- Prevent accessing the session in ServletRequestAttributes.updateAccessedSessionAttributes() if no session attributes need to be updated [SPR-13950] #18522
- Mis-typed URL should give 404 not 405 [SPR-13944] #18516
- An ObjectFactory variant with lenient not-unique handling [SPR-13943] #18515
- OkHttp RestTemplate adapter uses inappropriate async requests [SPR-13942] #18514
- Support for Common Annotations 1.1's javax.annotation.Resource.lookup() [SPR-13941] #18513
- Duplicate method signature in reference doc example [SPR-13940] #18512
- Provide way in MVC Java config to modify rather than replace default HandlerExceptionResolvers [SPR-13931] #18503
- ThreadPoolTaskExecutor does not allow for decorating Runnables [SPR-13930] #18502
- Consistent API between spring-web and spring-messaging HandlerMethod infrastructure [SPR-13929] #18501
- Speed up AntPathMatcher by doing prefix-match [SPR-13913] #18487
- Ability to add a custom ResourceLoader conveniently in AnnotationConfigWebApplicationContext or conveniently as can be done via spring boot [SPR-13905] #18479
- Convenient access to session and request attributes in controller methods [SPR-13894] #18468
- Support 'primary' transaction managers and data sources in the TestContext Framework [SPR-13891] #18465
- AnnotationAwareOrderComparator getP...