Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
4.1.8 Release
⭐ New Features
- Make AbstractFallbackTransactionAttributeSource.computeTransactionAttribute(…) protected [SPR-13246] #17837
- Avoid ambiguous property warning for setter methods with multiple parameters [SPR-13349] #17933
- Support for last-modified resolution in Tomcat's unpackwar=false mode [SPR-13393] #17434
- ClasspathXmlApplicationContext cannot be closed twice [SPR-13425] #18004
- Protect against RFD exploits [SPR-13548] #18124
- Compatibility with GlassFish 4.1.1 / Tyrus 1.12 [SPR-13566] #18142
🪲 Bug Fixes
- ConcurrentModificationException when doing a merge on AbstractEnvironment [SPR-13213] #17805
- PathResourceResolver should not resolve "/" as a JAR resource [SPR-13241] #17832
- PropertyOrFieldReference throws ClassCastException [SPR-13247] #17838
- Race condition when inbound message handling fails and StompSubProtocolHandler sends ERROR frame [SPR-13326] #17911
- Regression: SpringHandlerInstantiator breaks stand-alone support in the MVC Test framework [SPR-13375] #17957
- ScopedProxyMode resolution for custom scope meta-annotation not working with
@Bean
methods (with ASM-based scanning) [SPR-13394] #17974 - StompDecoder fails for partial headers containing escape sequence [SPR-13416] #17995
- ConcurrentModificationException in SingleConnectionFactory$AggregatedExceptionListener [SPR-13421] #18000
- MessagingException should not provide empty description String to NestedRuntimeException [SPR-13447] #18027
- DeferredResult not thread-safe for isSetOrExpired call [SPR-13451] #18031
- ConcurrentMapCache.putIfAbsent doesn't support null values [SPR-13458] #18038
- AbstractEmbeddedDatabaseConfigurer.shutdown does not close JDBC resources [SPR-13474] #18053
- YamlProcessor subclasses can no longer instantiate StrictMapAppenderConstructor [SPR-13504] #18082
- Null Pointer when receiving an invalid transport type during SockJS request [SPR-13545] #18121
- Consistently detect spring-beans.dtd reference [SPR-13549] #18125
- JCacheCache doesn't recognize null values in other JVMs [SPR-13553] #18129
- DefaultSubscriptionRegistry loses track of subscribers in its cache [SPR-13555] #18131
- Close processing triggered by shutdown hook isn't thread safe [SPR-13556] #18132
- Clarify whether HttpInputMessage.getBody() is allowed to return null [SPR-13563] #18139
- NullPointerException in DefaultSubscriptionRegistry.removeSubscription [SPR-13205] #17797
- Wrong assertion message in ShallowEtagHeaderFilter [SPR-13194] #17786
- STOMP CONNECT ignored ("No session for...") when using websocket:decorator-factories [SPR-13190] #17782
- ConcurrentModificationException when calling SimpMessagingTemplate.convertAndSend [SPR-13185] #17777
📔 Documentation
3.2.15 Release
⭐ New Features
- Avoid ambiguous property warning for setter methods with multiple parameters [SPR-13349] #17933
- Protect against RFD exploits [SPR-13548] #18124
🪲 Bug Fixes
- ConcurrentModificationException when doing a merge on AbstractEnvironment [SPR-13213] #17805
- DeferredResult not thread-safe for isSetOrExpired call [SPR-13451] #18031
- AbstractEmbeddedDatabaseConfigurer.shutdown does not close JDBC resources [SPR-13474] #18053
- JCacheCache doesn't recognize null values in other JVMs [SPR-13553] #18129
- Clarify whether HttpInputMessage.getBody() is allowed to return null [SPR-13563] #18139
📔 Documentation
4.2.1 Release
⭐ New Features
- AsyncRestTemplate should wrap RuntimeExceptions in ExecutionException [SPR-13413] #17992
- DefaultDeserializer should use ConfigurableObjectInputStream [SPR-13409] #17988
- Support transitive implicit attribute aliases with
@AliasFor
[SPR-13405] #17985 - SimpleAliasRegistry should detect circles between non-canonical aliases as well [SPR-13390] #17971
- Method lookup doesn't allow for overriding definitions in parent bean [SPR-13388] #17969
- VersionResourceResolver should add ETag headers when resolving resources [SPR-13382] #17963
- Support CALL Statement for SAP HANA [SPR-13381] #17962
- Quote if necessary Etags set with ResponseEntity builder API [SPR-13378] #17960
- Introduce hook for creating a custom BeanPropertyBindingResult in DataBinder [SPR-13373] #17955
- Log connection URL for embedded databases [SPR-13370] #17954
- Add 'preparer-factory' attribute to mvc:tiles-configurer/ [SPR-13363] #17947
- Add Jdk7Module to Jackson2ObjectMapperBuilder's well known modules [SPR-13354] #17938
- Introduce JsonPath matchers for empty and non-empty content [SPR-13352] #17936
- Avoid ambiguous property warning for setter methods with multiple parameters [SPR-13349] #17933
- Revisit RedirectView's use of getCurrentWebApplicationContext() [SPR-13346] #17930
- Support implicit attribute aliases with
@AliasFor
[SPR-13345] #17929 - Introduce SmartMessageConverter interface with conversionHint arguments [SPR-13343] #17927
- StompSubProtocolHandler should send SessionSubscribeEvent after ChannelSecurityInterceptor has validated access rights [SPR-13339] #17924
- Provide a SpringConstraintValidatorFactory variant for use with validation.xml [SPR-13327] #17912
- BeanPropertyRowMapper should log if mapRow doesn't find a PropertyDescriptor [SPR-13323] #17908
- Introduce additional JsonPath matchers in Spring MVC Test [SPR-13320] #17905
- File upload with Servlet 3 multipart requests should support filename with charset encoding (RFC 2231) [SPR-13319] #17904
- Deprecate JdkVersion (for optimistic compatibility with newer JDK generations) [SPR-13312] #17897
- UriComponents should support URI variables that contain a regex [SPR-13311] #17896
- HibernateJpaDialect should warn about connection release mode other than ON_CLOSE (when upgrading from 4.0.x) [SPR-13269] #17860
- Support for JSR-356 WebSockets on WebSphere Liberty Profile [SPR-12367] #16973
🪲 Bug Fixes
- MethodValidationPostProcessor fails for certain generic method signatures when running against Hibernate Validator 5 [SPR-12237] #22186
- Spring response handler returning abstract object drops unique fields from concrete class [SPR-13429] #18008
- Regression: BeanWrapperImpl.getPropertyDescriptor does not allow nested paths [SPR-13403] #17983
- ServletWebRequest.checkNotModified attempts to call HttpServletResponse.getStatus() on Servlet 2.5 [SPR-13396] #17976
- ScopedProxyMode resolution for custom scope meta-annotation not working with
@Bean
methods (with ASM-based scanning) [SPR-13394] #17974 - MessageHeaders mutable through Map.Entry.setValue() [SPR-13385] #17966
- Cannot set a Content-Type using ScriptTemplateView [SPR-13379] #17961
- Regression: SpringHandlerInstantiator breaks stand-alone support in the MVC Test framework [SPR-13375] #17957
- ResourceUrlProvider should only consider paths and not request parameters [SPR-13374] #17956
- JsonPath assertions fail to differentiate between definite and indefinite results in checks for existence [SPR-13351] #17935
- Default value of CommonsPool2TargetSource#maxWait is incorrect [SPR-13350] #17934
- ResponseBodyEmitter doesn't get headers written immediately [SPR-13341] #17925
- AnnotationUtils fails to synthesize nested maps into annotations [SPR-13338] #17923
- AnnotationUtils fails to throw exception if meta-annotation is not present [SPR-13335] #17921
- Race condition when inbound message handling fails and StompSubProtocolHandler sends ERROR frame [SPR-13326] #17911
@AliasFor
potentially overrides attribute in wrong meta-annotation [SPR-13325] #17910- SocketUtils does not properly detect available port on localhost [SPR-13321] #17906
- Jackson 2.6: message converter should use type only for collections [SPR-13318] #17903
- Multipart request tests fail when enabling spring security [SPR-13317] #17902
- MockHttpServletRequest returns empty cookies array instead of null if instance is built using MockHttpServletRequestBuilder [SPR-13314] #17899
- AllEncompassingFormHttpMessageConverter prioritizes Jackson 2 XML over JSON [SPR-13309] #17894
- Regression: PropertiesFactoryBean values do not get converted to target type without ConversionService [SPR-13256] #17847
📔 Documentation
- Add a section about HttpMessageConverter customization in the reference documentation [SPR-13411] #17990
- Misleading note on readonly and disabled flags in spring-form.tld [SPR-13397] #17977
- [doc] Document use of
@Transactional
on controller via@MessageMapping
[SPR-13384] #17965 - [doc] Update Javadoc on RestTemplate/AsyncRestTemplate to highlight supported HTTP client libraries [SPR-13313] #17898
- Document selenium-htmlunit-driver dependency [SPR-13299] #17889
4.2 GA Release
⭐ New Features
- ResourceBundleMessageSource performance optimization for getStringOrNull [SPR-13295] #17885
- Unable to override RequestMappingHandlerAdapter#createRequestMappingMethod [SPR-13293] #17883
- Introduce 'value' alias for 'attribute' in
@AliasFor
[SPR-13289] #17879 - RequestMapping: case insensitive path matching [SPR-13286] #17876
- Support
@Rollback
at the class level [SPR-13276] #17867 - DispatcherServlet: enable applyDefaultViewName to access multipart request parameters [SPR-13272] #17863
@MessageMapping
with placeholders [SPR-13271] #17862- InvocableHandlerMethod.getMethodArgumentValues() failure should lead to warn-level logging by default [SPR-13267] #17858
- Jackson
@JsonView
deserialization support for@MessageMapping
payloads [SPR-13265] #17856 - Add a new ResultMatcher for date formats in HTTP headers [SPR-13263] #17854
- RFC 3986: UriComponentsBuilder.fromUriString should support empty URIs [SPR-13257] #17848
- SockJS client does not use HttpHeaders passed by WebSocketConnectionManager for ServerInfo request [SPR-13254] #17845
- AsyncAnnotationBeanPostProcessor could find TaskExecutor by type/name [SPR-13248] #17839
- Make AbstractFallbackTransactionAttributeSource.computeTransactionAttribute(…) protected [SPR-13246] #17837
- Inconsistent JPA behavior using no transaction, propagation SUPPORTS and OpenEntityManager pattern [SPR-13243] #17834
- Transaction propagation SUPPORTS leads to “HHH000326: Cannot join transaction” warning [SPR-13242] #17833
- AllEncompassingFormHttpMessageConverter does not prefer Jackson2 over JAXB for XML marshalling [SPR-13240] #17831
- ScheduledAnnotationBeanPostProcessor should fall back to default TaskScheduler by name [SPR-13236] #17827
- Add MockMvc HtmlUnit Integration [SPR-13158] #17749
- Introduce
@Commit
alias for@Rollback
(false) [SPR-13279] #17372 - MockHttpServletResponse.setDateHeader does not perform date formatting [SPR-11912] #16531
🪲 Bug Fixes
- onCompletion SseEmitter callback never gets called [SPR-13292] #17882
- Regression in 4.2: NPE due to WebJarsResourceResolver [SPR-13291] #17881
- MockMvc.perform with the TestContext framework causes additional perform invocations to be "polluted" [SPR-13260] #17851
- Reset Pragma header in WebContentGenerator when caching resources [SPR-13252] #17843
- PropertyOrFieldReference throws ClassCastException [SPR-13247] #17838
- PathResourceResolver should not resolve "/" as a JAR resource [SPR-13241] #17832
- Regression: AnnotationScopeMetadataResolver fails to resolve VaadinView [SPR-13239] #17830
- Regression in ResponseStatusExceptionResolver: setStatus versus sendError [SPR-13226] #17817
📔 Documentation
- Doc: Autowiring in
@Configuration
classes with post-processor definitions [SPR-13285] #17875 - Document changes about HTTP cache header defaults in migration docs [SPR-13253] #17844
- AOP section referencs outdated resources [SPR-13238] #17829
- Document SpringClassRule and SpringMethodRule in the reference manual [SPR-13037] #17629
- Document AopTestUtils in the reference manual [SPR-13006] #17598
- Document support for generating unique names for embedded databases in the reference manual [SPR-12839] #17437
4.2 RC3 Release
⭐ New Features
- Allow Collection Selection/Projection to be applied to instances of Iterable [SPR-13231] #17822
- SimpleClientHttpRequestFactory: headers with null values should be sent as empty Strings [SPR-13225] #17816
- Allow customizing DispatcherServlet in AbstractDispatcherServletInitializer [SPR-13222] #17813
- JaxbMarshaller scan should skip annotated interfaces [SPR-13221] #17812
- JdbcTemplate.queryForObject(sql, .class) produces TypeMismatchDataAccessException [SPR-13220] #17811
- Support single quotes nested in double quotes in SQL scripts [SPR-13218] #17809
- BeanPropertyRowMapper should always call toLowerCase with US encoding [SPR-13216] #17807
- As of Jackson 2.6 the module class supporting the java.time (java8) package has changed [SPR-13212] #17804
- TomcatInstrumentableClassLoader should support Tomcat 7.0.63+ as well [SPR-13210] #17802
- ResourceBundleThemeSource could expose the property fallbackToSystemLocale of ResourceBundleMessageSource [SPR-13209] #17801
- Make RedirectViews use RESPONSE_STATUS_ATTRIBUTE as a response status if defined [SPR-13208] #17800
- Avoid rejecting same origin requests detected as CORS requests [SPR-13206] #17798
- LinkedMultiValueMap should allow for deep copy of List values [SPR-13201] #17793
- CommonsMultipartResolver should support setFileSizeMax [SPR-13200] #17792
- Support HandlerMethod parameter in
@MessageExceptionHandler
[SPR-13196] #17788 - Add an Access-Control-Request-Method check for CORS preflight requests [SPR-13193] #17785
- Add a CORS Filter [SPR-13192] #17784
- DelegatingFilterProxy should be aware of FrameworkServlet's WebApplicationContext [SPR-13191] #17783
- Unresolvable class in 'basePackageClasses' annotation attribute results in misleading and hard to diagnose error [SPR-13177] #17769
- Add
@EventListener
value() support for event class literals [SPR-13156] #17747 - ScriptTemplateView configuration option for JavaScript concurrency issues [SPR-13034] #17626
- Reduce BeanDefinition cloning in AbstractBeanFactory.getMergedBeanDefinition [SPR-12236] #16851
- MultipartFile interface should extend InputStreamSource [SPR-11861] #16480
🪲 Bug Fixes
- SseEmitter is not thread safe [SPR-13224] #17815
- ResponseBodyEmitter skips same messages during initialization [SPR-13223] #17814
- Populate RequestAttributes before invoking FilterChain in MockMvc [SPR-13217] #17808
- WebContentGenerator not backwards compatible [SPR-13207] #17799
- NullPointerException possible in DefaultSubscriptionRegistry [SPR-13204] #17796
- BEFORE_* modes in
@DirtiesContext
cause context to be closed before test [SPR-13180] #17772 - Binary data in POST multipart request is unmarshalled incorrectly [SPR-13096] #17687
📔 Documentation
- Improve documentation on limitations of Spring MVC Test [SPR-13169] #17760
- Improve DispatcherServlet diagrams [SPR-13120] #17711
- Improve Documentation about when use BindingAwareModelMap and ExtendedModelMap [SPR-12896] #17495
- Document
@Bean
definitions via default methods [SPR-12882] #17480 - Improve Reference Documentation about Spring WebSocket [SPR-12579] #17180
- Document method visibility rules for
@Bean
methods [SPR-12345] #16950 - Document autowiring of javax.validation.Validator with use of
@EnableWebMvc
[SPR-12194] #16808 - Improve documentation for
@IfProfileValue
precedence [SPR-11902] #16521 - Documentation should mention
@Primary
[SPR-7301] #11960
4.2 RC2 Release
⭐ New Features
- Avoid reading (empty) RequestBody for HTTP methods that aren't expected to have a body [SPR-13176] #17768
- Introduce logging support for MvcResult details in the Spring MVC Test framework [SPR-13171] #17762
- Print cookies in human-readable form in Spring MVC Test [SPR-13168] #17759
- Allow MVC handler methods to return any CharSequence type as view name [SPR-13165] #17756
- Support inlined statements in
@Sql
in the TestContext framework [SPR-13159] #17750 - Allow multiple destination per
@JmsListener
[SPR-13147] #17738 - Add an easy way to configure custom StompSubProtocolErrorHandler for StompSubProtocolHandler. [SPR-13142] #17733
- Support for Jetty 9.3 [SPR-13140] #17731
- Status 406 "Not Accepted" is not appropriate when no message converter can handle return type [SPR-13135] #17726
- Allow body of JmsListener annotated method to define returned Message Destination [SPR-13133] #17724
- Support CompletableFuture<> as return type of
@Async
methods [SPR-13128] #17719 - HttpComponentsAsyncClientHttpRequestFactory overrides default request config of httpclient [SPR-13125] #17716
- 400 Bad Request for missing URI template variable is incorrect [SPR-13121] #17712
- Introduce general purpose isEmpty() method in ObjectUtils [SPR-13119] #17710
- Add request timeout to ResponseBodyEmitter [SPR-13104] #17695
- Improve circular import exception, in particular for
@Import
vs import through nesting [SPR-13101] #17692 - Spring does not log deserialization / marshalling errors to the console [SPR-13100] #17691
- Prevent class/classloader retention in GenericConversionService [SPR-13099] #17690
- Reduce memory consumption for caches [SPR-13093] #17684
- Allow annotation to be synthesized from a map with minimal attributes [SPR-13087] #17678
- Transaction Scope [SPR-13085] #17676
- Custom async HandlerMethodReturnValueHandler should work with
@ResponseBody
[SPR-13083] #17674 - Introduce synthesized annotation alternative to getAnnotationAttributes() in AnnotatedElementUtils [SPR-13082] #17673
- Performing an asyncDispatch with MockMvc fails if DeferredResult is not yet set [SPR-13079] #17670
- AsyncResult implementation does not allow for throwing ExecutionException [SPR-13076] #17668
- Support retrieval of nested annotations in AnnotationAttributes [SPR-13074] #17666
- Document public API in AnnotationAttributes [SPR-13072] #17664
- Improve generics matching of ApplicationEvent subtypes with generic payload parameter [SPR-13069] #17661
- Introduce support for synthesizing AnnotationAttributes into an annotation [SPR-13067] #17659
- CORS global configuration support in XML namespace [SPR-13046] #17638
- Base64 support option without Commons Codec dependency on Java 6/7 [SPR-12938] #17531
- Make
@ResponseBody
method return type available to message converters [SPR-12811] #17408 - Maintain original ordering of active profiles in the TestContext framework [SPR-12492] #17098
- UriComponentsBuilder#fromHttpRequest should consider RFC-7239 Forwarded headers [SPR-11856] #16475
- Introduce a comprehensive programming model for meta-annotation support [SPR-11511] #16136
- Introduce aliases for 'value' annotation attributes [SPR-11393] #16020
🪲 Bug Fixes
- Type aware canWrite() method should be called for GenericHttpMessageConverter [SPR-13161] #17752
- MimeType must use case insensitive comparisons for Charsets [SPR-13157] #17748
- Stomp version 1.1 and 1.2 allows headers with empty values [SPR-13111] #17702
- Fix combining class and method level
@CrossOrigin
attributes [SPR-13097] #17688 - CGLIB code generation failure for cross-
@Bean
FactoryBean call [SPR-13095] #17686 - ServletWebRequest.checkNotModified(…) writes Last-Modified header in invalid format [SPR-13090] #17681
- AnnotationUtils.getRepeatableAnnotation() swallows AnnotationConfigurationException [SPR-13084] #17675
- Server Sent Events use "event" as the type prefix [SPR-13080] #17671
- Nested arrays of annotations are synthesized with wrong component type [SPR-13077] #17669
- AnnotationUtils breaks contract for
@Repeatable
annotations [SPR-13068] #17660 - XpathResultMatchers ignores character encoding of XML document [SPR-12676] #17275
📔 Documentation
4.1.7 Release
⭐ New Features
- Avoid reflection for creating StandardServletAsyncWebRequest [SPR-13112] #17703
- Provide means to opt out of default annotation based transaction management by bean [SPR-13109] #17700
- Make PropertyMatches public [SPR-13054] #17646
- mvc:resources does not handles directories well [SPR-12999] #17591
- Same Origin check in both AbstractSockJSService and OriginHandshakeInterceptor is not working with Tyrus client [SPR-12956] #17548
- MethodJmsListenerEndpoint does not set the DestinationResolver on the MessagingMessageListenerAdapter [SPR-12927] #17520
- Use higher log level in InvocableHandlerMethod.getMethodArgumentValues() [SPR-12925] #17518
- Spring logs FactoryBean type check warning in case of factory method with arguments [SPR-12900] #17499
- AnnotatedElementUtils should leniently ignore TypeNotPresentExceptions (just like AnnotationUtils) [SPR-12889] #17487
- Support package private annotations with AnnotationUtils [SPR-12858] #17456
@Aspect
aspect not correctly applied to Java 8 lambda-defined@Beans
[SPR-11807] #16427
🪲 Bug Fixes
- YAML Processor leaves StreamDecoder open [SPR-13173] #17765
- GzipResourceResolver has NullPointerException when used with VersionResourceResolver [SPR-13149] #17740
- AntPathMatcher throws StringIndexOutOfBoundsException [SPR-13139] #17730
- XML input vulnerability based on DTD declaration [SPR-13136] #17727
- ObjenesisCglibAopProxy's fallback mode triggers duplicate class definition error [SPR-13131] #17722
- FileNotFoundException when implementing a nested interface with groovy closure in a
@Component
[SPR-13115] #17706 - When use a
@args
as pointcut, there is case that occur a NPE at calling the unrelated method [SPR-13102] #17693 - Configuration class parsing may trigger NoClassDefFoundError for nested classes [SPR-13091] #17682
- H4 SpringSessionSynchronization#beforeCompletion leaves irreparably broken state if exception thrown in session.disconnect() [SPR-13089] #17680
- Wrong IllegalStateException for
@Cacheable
without a cache name [SPR-13081] #17672 - DefaultMockMvcBuilder combined with
@ContextHierarchy
registers wrong context as ROOT [SPR-13075] #17667 - ByteBuffer corrupted by ByteBufferConverter when passed through Spring [SPR-13056] #17648
- Remoting over JMS with receiveTimeout blocks service forever [SPR-13052] #17644
- NPE in PropertyOrFieldReference due to concurrency issue when caching SpelExpression objects [SPR-13023] #17614
- Validation of frame content in org.springframework.web.socket.sockjs.frame.SockJsFrame is a NoOp [SPR-13019] #17610
- StringIndexOutOfBoundsException in ResourceUrlEncodingFilter [SPR-13018] #17609
- NPE for alias resolved to null in SimpleAliasRegistry [SPR-13016] #17607
- Commons FileUpload failed after Spring framework upgrade [SPR-13014] #17605
- CustomBooleanEditor may run into NPE when configured with allowEmpty=false [SPR-13010] #17601
- ContentCachingResponseWrapper should NOT sendError() before write body [SPR-13004] #17596
- RequestMapping maps root-controller handler methods with double slashes [SPR-12975] #17566
- PatternMatchUtils infinite loop bug [SPR-12971] #17563
- Regression: DLL handled as classpath resource [SPR-12928] #17521
- ResponseEntity's #equals fails symmetric property. [SPR-12910] #17509
- Async Execution Aspect compiler error when using ListenableFuture [SPR-12895] #17494
- CachingResourceResolver + GzipResourceResolver caches different results depending on what is requested first [SPR-12892] #17491
- Regression in handling of String passed as Types.OTHER to JdbcTemplate [SPR-12890] #17488
- client-library-url in sockjs config is not working [SPR-12874] #17472
- CronSequenceGenerator constructor goes into infinite loop with invalid increments [SPR-12871] #17469
- Incorrect value in InvalidPropertyException message from BeanWrapperImpl.setPropertyValue [SPR-12866] #17464
- Netty4ClientHttpRequest ignores query parameters [SPR-12779] #17377
📔 Documentation
3.2.14 Release
🪲 Bug Fixes
@Scheduled
no longer works in case of multiple proxied target classes implementing the same interface [SPR-12709] #17306- ServletUriComponentsBuilder#initFromRequest can cause NPE [SPR-12723] #17320
- Deadlock publishing event while creating listener bean [SPR-12739] #17336
- Specified MVC resource at root level not considered "under location" [SPR-12747] #17344
- EncodedResource does not include charset in equals() implementation [SPR-12767] #17364
- StandardMultipartHttpServletRequest.StandardMultipartFile not serializable [SPR-12795] #17392
- Incorrect value in InvalidPropertyException message from BeanWrapperImpl.setPropertyValue [SPR-12866] #17464
- CronSequenceGenerator constructor goes into infinite loop with invalid increments [SPR-12871] #17469
- PatternMatchUtils infinite loop bug [SPR-12971] #17563
- CustomBooleanEditor may run into NPE when configured with allowEmpty=false [SPR-13010] #17601
- NPE for alias resolved to null in SimpleAliasRegistry [SPR-13016] #17607
- Remoting over JMS with receiveTimeout blocks service forever [SPR-13052] #17644
- When use a
@args
as pointcut, there is case that occur a NPE at calling the unrelated method [SPR-13102] #17693 - XML input vulnerability based on DTD declaration [SPR-13136] #17727
- SpEL chooses wrong method to invoke when varargs method is present [SPR-12803] #17400
📔 Documentation
4.2 RC1 Release
⭐ New Features
@SendTo
does not get converter applied when returning Message [SPR-13124] #17715- Implement hashCode() for synthesized annotations [SPR-13066] #17658
- Implement equals() for synthesized annotations [SPR-13065] #17657
- Implement toString() for synthesized annotations [SPR-13064] #17656
- Introduce putIfAbsent() in AnnotationAttributes [SPR-13060] #17652
- No possible matches for invalid field access in DirectFieldAccessor [SPR-13053] #17645
- mvcUrl is always rendering scheme+host+port, that should be optional only when absolute link is needed [SPR-13045] #17637
- DataBinder should use ConversionService if PropertyEditor cannot produce required type [SPR-13042] #17634
- Ability to prefix each RestTemplate request using some kind of UriPrefixingClientHttpRequestFactory [SPR-13035] #17627
- LocaleChangeInterceptor not protected against CSRF [SPR-13032] #17624
- Document "present" terminology in AnnotationUtils [SPR-13030] #17623
- Provide access to the return type in MethodMetadata [SPR-13024] #17615
- Destroy callback cannot be disabled for AutoCloseable beans [SPR-13022] #17613
- Harmonize default converters with available editors [SPR-13020] #17611
- Avoid eager error message formatting in pre-condition checks [SPR-13007] #17599
- Introduce AopTestUtils in spring-test [SPR-13005] #17597
- Eliminate inspection of meta-annotations on Java annotations [SPR-12989] #17580
- NoHandlerFoundException message should not contain all headers [SPR-12984] #17575
- Automatically register Jackson's JDK 8 module when available [SPR-12983] #17574
- ShallowEtagHeaderFilter breaks SockJS and HTTP streaming async responses [SPR-12960] #17552
- Using StandardWebSocketClient it's not possible to customize ClientEndpointConfig before it's passed to WebSocketContainer.connectToServer method [SPR-12955] #17547
- Default RequestPostProcessor should be executed first [SPR-12945] #17538
- Autowiring against a closed ApplicationContext should consistently fail [SPR-12932] #17525
- Spring Performance Optimization, Comparing Classes [SPR-12926] #17519
- Allow for marshalling the messaging Message payload with an user defined marshaller [SPR-12912] #17511
- Configure reply type via JmsListenerContainerFactory [SPR-12911] #17510
@Configuration
enhancer does not throw proper exception in case of mismatched@Bean
method [SPR-12905] #17504- MVC should respect
@ResponseStatus
on exceptions during mapping [SPR-12903] #17502 - Revisit "ApplicationEventMulticaster not initialized" behavior for early event publication scenarios [SPR-12902] #17501
- Support expression in
@SendTo
for JMS endpoints [SPR-12899] #17498 - Improve exception message in case of incomplete Caching configuration. [SPR-12898] #17497
- ResourceHttpMessageConverter always returns "application/octet-stream" Content-Type [SPR-12894] #17493
- OkHttp implementations of ClientHttpRequestFactory / AsyncClientHttpRequestFactory [SPR-12893] #17492
- Better exception message for missing
@RequestBody
method parameter [SPR-12888] #17486 - Support 'selector' header for subscriptions with SimpleBrokerMessageHandler [SPR-12884] #17482
- Support injecting resource as Reader [SPR-12876] #17474
- Improve handling of JDK dynamic proxies in DefaultAopProxyFactory. [SPR-12870] #17468
- CookieGenerator.removeCookie doesnt support secure field [SPR-12865] #17463
- MethodValidationPostProcessor could be more open to extension [SPR-12863] #17461
- Indeterministic UnsatisfiedServletRequestParameterException#paramConditions [SPR-12854] #17452
- Provide Access to Spring WebSocket's Configured PathMatcher [SPR-12845] #17443
- add support of xlsx format to JasperReportsMultiFormatView [SPR-12843] #17441
- HttpSessionHandshakeInterceptor's getSession(request) [SPR-12840] #17438
- Introduce database-name attribute in <jdbc:embedded-database /> [SPR-12835] #17432
- Allow <jdbc:embedded-database /> to be declared as an anonymous bean [SPR-12834] #17431
- HTTP Streaming Directly to the OutputStream [SPR-12831] #17428
- HttpComponentsClientHttpRequestFactory should not depend on CloseableHttpClient [SPR-12826] #17423
- Add setAutoStartup(boolean) to AbstractJmsListenerContainerFactory [SPR-12824] #17421
- Make ReflectionUtils.doWithMethods work on Java 8 default interface methods [SPR-12822] #17419
- On CONNECT and external broker is not available, StompBrokerRelayMessageHandler should return ERROR frame [SPR-12820] #17417
- Support a customizable FieldError creation at SpringValidatorAdapter [SPR-12819] #17416
- Provide an option for trailing slash for AbstractUrlHandlerMapping like RequestMappingHandlerMapping [SPR-12818] #17415
- Support SpEL in bean class names [SPR-12817] #17414
- SubProtocolWebSocketHandler should check is session is open before adding it to its map [SPR-12812] #17409
- SpEL's ReflectiveMethodResolver should use distance computation by default [SPR-12808] #17405
@Order
annotations not consistently honored within DispatcherServlet and other parts of the framework [SPR-12806] #17403- Make initDirectFieldAccess work with array, List and Map [SPR-12805] #17402
- Support for named parameters in SimpleJdbcCall [SPR-12801] #17398
- Allow use of MvcUriComponentsBuilder independent of Servlet request lifecycle [SPR-12800] #17397
- Support for Transport connectivity check in JavaMailSender [SPR-12799] #17396
- TypeDescriptor should support arbitrary levels of meta-annotations [SPR-12793] #17390
- SpEL: reduce restrictions on compiling mathematical expressions [SPR-12789] #17386
- UrlTag mishandles foreign root context URIs [SPR-12782] #17380
- Re-allow handling empty request body [SPR-12778] [#17376](https://github.com/spring-projects/spring-fr...
4.1.6 Release
⭐ New Features
- TcpConnection should extend java.io.Closeable [SPR-12849] #17447
- Ignore null in HeadersBuilder#headers [SPR-12792] #17389
- RestTemplate logging for 404 status code [SPR-12760] #17357
- Support
@NumberFormat
as a meta-annotation [SPR-12743] #17340
🪲 Bug Fixes
- Exception cache resolver shouldn't be mandatory [SPR-12850] #17448
- CacheLoader is ignored as of Guava 11 [SPR-12842] #17440
- ConcurrentModificationException in ConfigurationClassParser.processDeferredImportSelectors [SPR-12838] #17436
- There is no spring-beans.dtd file inside of the spring-beans-4.1.5.RELEASE jar [SPR-12836] #17433
- Thread contention in HandlerMethod due to unnecessary BeanFactory.getType call [SPR-12832] #17429
- DefaultManagedAwareThreadFactory's non-JNDI fallback leads to StackOverflowError [SPR-12830] #17427
- X-Forwarded-Proto with comma separated list causes incorrect scheme [SPR-12816] #17413
- X-Forwarded-Port with Comma Separated List Not Able to be Parsed in Spring 4.1.x [SPR-12813] #17410
- Not reusable input stream in ContentCachingRequestWrapper [SPR-12810] #17407
- Exception not thrown by OnFailure() when using ListenableFutureCallback [SPR-12797] #17394
- StandardMultipartHttpServletRequest.StandardMultipartFile not serializable [SPR-12795] #17392
- Regression in 4.1: UnsatisfiedDependencyException because a prototype-scoped FactoryBean is unexpectedly instantiated by getTypeForFactoryBean() [SPR-12786] #17383
- ObjectToOptionalConverter wraps a source Optional<?> to the new one [SPR-12785] #17382
- LoadTimeWeavingConfiguration should not rely on private field injection [SPR-12776] #17374
- Regression in 4.1.5: UriComponentsBuilder.fromHttpRequest sets port to 80 i.s.o nothing/443 [SPR-12771] #17368
- GroovyBeanDefinitionReader does not fully support XML config files [SPR-12769] #17366
- XML config isn't fully supported for web integration tests if Groovy is on the classpath [SPR-12768] #17365
- EncodedResource does not include charset in equals() implementation [SPR-12767] #17364
- ScriptUtils and ScriptStatementFailedException confuse lines and statements [SPR-12752] #17349
- Specified MVC resource at root level not considered "under location" [SPR-12747] #17344
- Regression in 4.1.5: Alternative
@Bean
declarations with same primary bean name do not work anymore [SPR-12744] #17341 - Deadlock publishing event while creating listener bean [SPR-12739] #17336
- MockMvc PrintResultHandler asserts before result is set [SPR-12735] #17332
📔 Documentation
- Consider rewording ack modes on the listener container javadocs [SPR-12705] #17302