Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
4.1.5 Release
⭐ New Features
- MessageHeaderAccessor.getContentType() should get deal with String value too, rather than rely only casting to MimeType [SPR-12730] #17327
- Add possibility to set supportedMimeTypes in MappingJackson2MessageConverter [SPR-12724] #17321
- Open up TestPropertySourceUtils for public consumption [SPR-12721] #17318
- Preserve ordering of inlined properties in
@TestPropertySource
[SPR-12710] #17307 - BeanWrapper should auto-grow arrays on indexed set attempt as well [SPR-12706] #17303
- Add same origin support to SockJS and WebSocket [SPR-12697] #17294
- Allow MBeanExporter's excludedBeans to be configured additively [SPR-12686] #17285
- Change SockJS default to allowing same origin only [SPR-12685] #17284
- Allow YamlProcessor subclasses to provide the Yaml instance that's used [SPR-12671] #17270
- Support
@Configuration
as a meta-annotation in the TestContext framework [SPR-12659] #17259 - Use UUID.randomUUID() for session id's in SockJsClient [SPR-12658] #17258
- Add the ability to turn off automatic derivation of Aliases for custom parsers. [SPR-12643] #17244
- Allow Jackson2ObjectMapperBuilder configuration to override the well-known modules' configuration [SPR-12634] #17235
- ResourceUrlEncodingFilter fails when Thymeleaf and the "/**" resource pattern is used [SPR-12630] #17231
- Enable reuse of DefaultActiveProfilesResolver [SPR-12611] #17212
- Consider caching the compiled pattern in OperatorMatches [SPR-12610] #17211
- AbstractRequestLoggingFilter and CommonsRequestLoggingFilter log level checks [SPR-12609] #17210
- Don't use Exception for normal behavior in org.springframework.core.annotation.AnnotationUtils.getValue [SPR-12604] #17205
- Support specifying TimeZone in Jackson2ObjectMapperFactoryBean [SPR-12594] #17195
- RestTemplate - support response mapping to entity with potentially empty response body. [SPR-8016] #12671
- AbstractRequestLoggingFilter should log actual body even after consuming request parameters on Tomcat 6 [SPR-7913] #12568
🪲 Bug Fixes
- Stomp error when PongMessage is passed to StompSubProtocolHandler [SPR-12728] #17325
- Unhandled websocket error when unsolicited pong frame with zero length payload received from IE11 [SPR-12727] #17324
- ServletUriComponentsBuilder#initFromRequest can cause NPE [SPR-12723] #17320
- WebSocketTransportHandler passes Collections.<String, Object>emptyMap() to HandshakeHandler [SPR-12716] #17313
@Scheduled
no longer works in case of multiple proxied target classes implementing the same interface [SPR-12709] #17306- Conditions on an overriding bean method effectively get ignored [SPR-12694] #17292
- ConcurrentModificationException thrown while iterating over bean definition names in DefaultListableBeanFactory#getBeansWithAnnotation(Class<? extends Annotation> annotationType) [SPR-12688] #17286
- ConcurrentModificationException in SimpleBrokerMessageHandler [SPR-12665] #17264
- AbstractSockJsService.checkAndAddCorsHeaders fails for same origin requests when setAllowedOrigins is set [SPR-12660] #17260
- ResourceUrlProvider does not keep resource handlers ordered [SPR-12647] #17248
- During startup scheduled tasks are driven earlier than before causing problems with Spring Batch [SPR-12641] #17242
- CssLinkResourceTransformer throws Exception on links that start with // [SPR-12632] #17233
- PathResourceResolver.isResourceUnderLocation does not handle relative paths correctly [SPR-12624] #17225
- Netty4ClientHttpRequestFactory always allocates "maxRequestSize" bytes for each request [SPR-12623] #17224
- Exception with JSON serialization in ResponseBodyAdviceChain when debug logging is on [SPR-12616] #17217
- Handle exceptions properly in SpringJUnit4ClassRunner [SPR-12613] #17214
- Default value of mvc:redirect-view-controller context-relative attribute is not "true" [SPR-12607] #17208
- ResourceUrlProvider should initialize only once [SPR-12592] #17193
- ObjectToOptionalConverter should use Optional.ofNullable(…) instead of Optional.of(…) [SPR-12589] #17190
- Regression in TransactionAspectSupport.determineTransactionManager(…) [SPR-12577] #17178
📔 Documentation
- Documentation error in "SimpleJdbcInsert" section [SPR-12639] #17240
4.1.4 Release
⭐ New Features
- Spring's JMX support can rely on native MXBean detection on Java 6+ [SPR-12574] #17175
- Improve diagnostics when AnnotationJmxAttributeSource triggers an ArrayStoreException from Class.getAnnotation [SPR-12572] #17173
- org.springframework.cache.aspectj.JCacheCacheAspect is missing from META-INF/aop.xml in spring-aspects [SPR-12571] #17172
- PayloadArgumentResolver enforces Validator unnecessarily [SPR-12567] #17168
- MockMvcBuilders should populate ServletContextAttribute WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE to enable view technologies use WebApplicationContextUtils.getRequiredWebApplicationContext(…) [SPR-12553] #17155
- Configured RequestConfig in HttpClient gets overwritten by default [SPR-12540] #17144
- Better implementation of showSql for EclipseLinkJpaVendorAdapter [SPR-12528] #17133
- CacheAspectSupport 's generateKey method should not concatenate Strings [SPR-12527] #17132
- Add DEBUG/INFO logging in AbstractBeanFactory.registerScope() [SPR-12519] #17124
- Allow sending of binary WebSocket messages in StompSubProtocolHandler [SPR-12475] #17081
- Improve Constructor Resolver Diagnostics [SPR-12543] #16975
- Upgrade HttpComponentsHttpInvokerRequestExecutor to require Apache HttpComponents 4.3 [SPR-11113] #15739
🪲 Bug Fixes
- Wrong TransactionManager selected when mixing
@Transactional
with and w/o qualifier [SPR-12606] #17207 - Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167
- VerifyError for compiled SpEL expression with primitive/reference type mix when using == [SPR-12557] #17159
- AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
@SessionAttributes
not populated when going directly to POST and redirecting while ignoreDefaultModelOnRedirect=true [SPR-12542] #17146@Transactional
qualifier is ignored by TransactionAspectSupport if default transaction manager is set [SPR-12541] #17145- Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
- CollectionFactory should create empty EnumSets and EnumMaps [SPR-12533] #17138
@EnableMBeanExport
exposes scoped proxies and their targets [SPR-12529] #17134- Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
- Regression: SpEL expression with Arrays.asList and empty array [SPR-12522] #17127
- AnnotationTransactionAspect retains reference to JpaTransactionManager from closed context [SPR-12518] #17123
- HttpComponentsClientHttpRequestFactory does not set connection request timeout on request config [SPR-12166] #16780
📔 Documentation
- Add TimeZone and ZoneId to list of supported method arguments [SPR-12575] #17176
- Update documentation after SPR-3542 [SPR-12570] #17171
- Add note to reference material about difference between XML destroy-method and
@Bean
destroyMethod behavior [SPR-12534] #17139 - I can use ';' and EOL for delimiter of base-package attribute(component scan) [SPR-12523] #17128
- Names of Maven Dependencies [SPR-12517] #17122
4.0.9 Release
⭐ New Features
- Concurrent registration/iteration in PropertySourcesPropertyResolver [SPR-12428] #17034
- Making it easier to replace "RequestMappingHandlerAdapter.handleInternal" [SPR-12460] #17065
- NotReadablePropertyException should take causing exception as constructor argument [SPR-12467] #17073
- Allow overriding InvocableHandlerMethod.invoke and/or ServletInvocableHandlerMethod.invokeAndHandle in subclasses [SPR-12484] #17090
- Consistent bridge method handling in annotation post-processors [SPR-12495] #17101
- Check the user for a SockJS request [SPR-12497] #17103
- CacheAspectSupport 's generateKey method should not concatenate Strings [SPR-12527] #17132
- PayloadArgumentResolver enforces Validator unnecessarily [SPR-12567] #17168
- Improve diagnostics when AnnotationJmxAttributeSource triggers an ArrayStoreException from Class.getAnnotation [SPR-12572] #17173
- Spring's JMX support can rely on native MXBean detection on Java 6+ [SPR-12574] #17175
🪲 Bug Fixes
- Using TransactionManagementConfigurer causes StackOverflowError that results in NoClassDefFoundError for FatalBeanException [SPR-10787] #15413
- webjar stops working [SPR-12432] #17038
- Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
- NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
- Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
- AnnotationAttributesReadingVisitor.doVisitEnd doesn't handle possible null return from AnnotationUtils.getAnnotations [SPR-12493] #17099
- SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
- Base packages referenced from
@ControllerAdvice
must contain at least one Controller [SPR-12506] #17111 - Synchronize message sending in HTTP SockJS sessions with request initialization [SPR-12516] #17121
- Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
- Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
- AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
- Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167
📔 Documentation
- Star character interpreted as bold expression in generated documentation [SPR-12456] #17061
- Misleading documentation for SqlRowSet [SPR-12476] #17082
- I can use ';' and EOL for delimiter of base-package attribute(component scan) [SPR-12523] #17128
- Update documentation after SPR-3542 [SPR-12570] #17171
- Add TimeZone and ZoneId to list of supported method arguments [SPR-12575] #17176
3.2.13 Release
⭐ New Features
- Consistent bridge method handling in annotation post-processors [SPR-12495] #17101
🪲 Bug Fixes
- Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
- webjar stops working [SPR-12432] #17038
- Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
- NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
- Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
- SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
- Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
- Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
- AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
- Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167
- When use the same configuration annotation of javaconfig, does not work on spring 3.2.12 [SPR-12442] #17047
- Embedded derby database uses derby.log [SPR-12437] #17042
📔 Documentation
4.1.3 Release
⭐ New Features
- Please add static unprocessableEntity() builder method to ResponseEntity [SPR-12515] #17120
- Support for X-Forwarded-Prefix in ServletUriComponentsBuilder [SPR-12500] #17105
- Allow YamlProcessor subclasses to build the flattened map [SPR-12499] #17104
- Check the user for a SockJS request [SPR-12497] #17103
- Consistent bridge method handling in annotation post-processors [SPR-12495] #17101
- Add UriComponentsBuilder.clone() [SPR-12494] #17100
@Scope
and other common bean annotations on nested@Component
classes [SPR-12486] #17092- Allow overriding InvocableHandlerMethod.invoke and/or ServletInvocableHandlerMethod.invokeAndHandle in subclasses [SPR-12484] #17090
- Default conversion support for EnumSet / EnumMap [SPR-12483] #17089
- Update SqlRowSet interface with JDBC 4.x ResultSet additions [SPR-12480] #17086
- Enrich the message for "connected" events with Principal [SPR-12479] #17085
- Extract ContentCachingRequestWrapper and ContentCachingResponseWrapper for custom use outside of Spring's filters [SPR-12477] #17083
- NotReadablePropertyException should take causing exception as constructor argument [SPR-12467] #17073
- SimpleJdbcInsert should take Map<String, ?> as arg instead of Map<String, Object> [SPR-12462] #17067
- PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:392) too aggressive, resulting in NoClassDefFoundError [SPR-12461] #17066
- Making it easier to replace "RequestMappingHandlerAdapter.handleInternal" [SPR-12460] #17065
- Registering an HttpMessageConverter while preserving default converters [SPR-12450] #17055
- BeanMethodInterceptor doesn't forward user-provided arguments to getBean(name, args) [SPR-12443] #17048
- GenericGroovyApplicationContext propagates BeanDefinitionParsingException only when context file is named 'beans.groovy' [SPR-12435] #17040
- MessageHeaderAccessor copyHeaders... tuning [SPR-12431] #17037
- Concurrent registration/iteration in PropertySourcesPropertyResolver [SPR-12428] #17034
- Allow custom
@Validated
annotations for handler method parameters [SPR-12406] #17014 - Use Jackson ObjectMapper improved default properties outside spring-web [SPR-12293] #16898
- Support for Undertow 1.1 / WildFly 8.2 [SPR-12302] #16836
@Configuration
should respect@DependsOn
on imported or nested classes as well [SPR-11883] #16502- Spring dependency injection for Jackson serializers [SPR-10768] #15394
@Validated
should allow ElementType.METHOD target [SPR-9174] #13812
🪲 Bug Fixes
- Synchronize message sending in HTTP SockJS sessions with request initialization [SPR-12516] #17121
- SpEL compilation problem for payload concatenation use case in Spring Integration [SPR-12514] #17119
@SendTo
annotation not found on Jms listener with JDK proxy [SPR-12513] #17118@ControllerAdvice
(basePackageClasses) do the prefix search by package name. [SPR-12509] #17114- Base packages referenced from
@ControllerAdvice
must contain at least one Controller [SPR-12506] #17111 - SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
- AnnotationAttributesReadingVisitor.doVisitEnd doesn't handle possible null return from AnnotationUtils.getAnnotations [SPR-12493] #17099
@Resource
injection broken under spring-framework > 4.1.0 [SPR-12490] #17096- be more defensive looking up javax.annotation.Priority (jdk6 compatibility) [SPR-12489] #17095
- SPR-12443 breaks Spring Security's AuthenticationConfiguration [SPR-12488] #17094
- Need a defensive close() in YamlProcessor [SPR-12487] #17093
- Cache busting does not work when context path is different from / [SPR-12459] #17064
- Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
- NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
- Early initialization of
@Configuration
class may lead to unwanted call to setBeanFactory [SPR-12445] #17050 - Not able to send message specific to user using STOMP over WebSocket [SPR-12444] #17049
- Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
- webjar stops working [SPR-12432] #17038
- Using TransactionManagementConfigurer causes StackOverflowError that results in NoClassDefFoundError for FatalBeanException [SPR-10787] #15413
📔 Documentation
4.1.2 Release
⭐ New Features
- Straight JmsMessagingTemplate setup based on JMS ConnectionFactory [SPR-12413] #17021
- Log context cache statistics in the TestContext framework [SPR-12409] #17017
- Enhance MockHttpServletRequestBuilder with contentType(String) method [SPR-12405] #17013
- DefaultListableBeanFactory should allow efficient access to current bean names [SPR-12404] #17012
- Auto exported lazy
@ManagedResources
should at least log errors if they can't be initialized [SPR-12399] #17007 - Mybatis config error leads to endless loop, and no std error output [SPR-12397] #17005
- Configuration class parsing should reuse metadata from AnnotatedBeanDefinition as far as possible [SPR-12394] #17002
- Improve diagnostics when AnnotationAttributesReadingVisitor triggers an ArrayStoreException from Class.getAnnotations() [SPR-12387] #16995
- Improvement of CharacterEditor.setAsText() and setAsUnicode() [SPR-12386] #16994
- In, AutowireUtils.sortConstructors(), Using valueOf is faster than using constructor [SPR-12385] #16993
- org.springframework.oxm.xmlbeans.XmlOptionsFactoryBean.setOptions(Map) makes inefficient use of keySet iterator [SPR-12383] #16991
- String comparison using .equals() in ASM ClassReader [SPR-12382] #16990
- Support Netty as the underlying HTTP client for the RestTemplate [SPR-12381] #16989
- Improvement of BeanWrapperImpl.getPropertyValue(PropertyTokenHolder tokens) [SPR-12378] #16985
- PropertyDescriptor in PropertyValue needs to be transient to avoid serialization failure [SPR-12377] #16984
- Update Documentation about
@RequestMapping
's defaults [SPR-12375] #16982 - Add an option to use include instead of forward mode in Tiles support [SPR-12374] #16981
- MappingJackson2XmlHttpMessageConverter should support text/xml and application/*-xml [SPR-12366] #16972
- Inefficient new Byte, Integer, Character constructor calls in ASM ClassReader [SPR-12365] #16970
- org.springframework.ui.ModelMap.mergeAttributes(Map) makes inefficient use of keySet iterator [SPR-12363] #16968
- Add support for DELETE with body to RestTemplate through exchange method [SPR-12361] #16966
- Improve diagnostics when OrderUtils.getPriority encounters an ArrayStoreException during annotation introspection [SPR-12357] #16962
- BeanFactoryAnnotationUtils,qualifiedBeanOfType, Inefficient use of keySet iterator. [SPR-12356] #16961
- Favor more locally declared composed annotations over interface annotations in AnnotationUtils [SPR-12355] #16960
- Add Object type to Comparable for removing raw type warning in StandardTypeComparator [SPR-12353] #16958
- Delete unused import in HttpSessionHandshakeInterceptor class [SPR-12352] #16957
- ExposeInvocationInterceptor doesn't make a best effort to be first in execution order [SPR-12351] #16956
- Allow for using the response encoding when escaping HTML characters [SPR-12350] #16955
- HibernateTransactionManager should allow holdability of ResultSet into the View layer [SPR-12349] #16954
- Improve Reference documentation
@PathVariable
,@RequestHeader
&@RequestParam
using Map<String, String> [SPR-12347] #16952 - JdbcTemplate does not apply values of zero for setMaxRows, setFetchSize and setQueryTimeout [SPR-12338] #16943
- OpenJpaDialect does not support declarative transaction isolation [SPR-12333] #16938
- Extend SpEL compiler for few more constructs: inline lists, string concatenation and varargs invocation [SPR-12328] #16933
- SqlServerMaxValueIncrementer may cause table lock [SPR-12327] #16932
- AnnotationUtils provides poor diagnostics if getDeclaredAnnotations throws an exception [SPR-12325] #16930
- Add a new ResponseEntity$HeadersBuilder method [SPR-12324] #16929
- Allow clientInboundChannel interceptors to take advantage of message mutability [SPR-12321] #16926
- EclipseLinkJpaDialect does not support declarative transaction isolation [SPR-12319] #16924
- Better error reporting for circular dependencies between JavaConfig classes [SPR-12317] #16922
- Allow access to underlying WebSocketSession with WebSocketMessageBroker config [SPR-12314] #16919
- Add serializerByType() deserializerByType() and mixIn() to Jackson2ObjectMapperBuilder [SPR-12313] #16918
- WebSocketSession should extend java.io.Closeable [SPR-12311] #16916
- Allow binary WebSocket messages in StompSubProtocolHandler [SPR-12301] #16907
- Upgrade optional JsonPath dependency from 0.9.0 to 1.1.0 [SPR-12299] #16905
- JavaMailSender.doSend() should more aggressively catch exceptions [SPR-12298] #16904
- JavaMailSenderImpl - Set empty String params to null for setUsername and setPassword [SPR-12294] #16899
- CompositePropertySource should extend EnumerablePropertySource [SPR-12292] #16897
- Return sensible defaults in MockServletContext's Servlet and Filter registration get methods [SPR-12290] #16895
- Allow server-side code to send DISCONNECT messages to the broker [SPR-12288] #16893
- Allow to define the sort order of media types to produce [SPR-12286] #16891
- Enable parallel loading in DecoratingClassLoader and subclasses on JDK 7+ [SPR-12285] #16890
- Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
- Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
- HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
- Support jackson mix-in classes in Jackson2ObjectMapperFactoryBean [SPR-12144] #16758
- Create a new UndertowXhrTransport [SPR-12008] #16624
- SpEL's arithmetic operations should explicitly detect BigInteger/Short/Byte and fall back to double handling for unknown Number subtypes [SPR-9913] #14546
- Log4jConfigurer initLogging(location) should throw FileNotFoundException for file URL as well [SPR-9725] #14359
- Greek characters and htmlEscape() [SPR-9293] #13931
- Spring's JDBC connection access disables shared cache in EclipseLink [SPR-7753] #12409
🪲 Bug Fixes
- StompDecoder StringIndexOutOfBoundsExcep...
4.0.8 Release
⭐ New Features
- Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
- XML bean singleton attribute silently ignored [SPR-12167] #16781
- HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
- Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
- Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
- Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
- Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
- Update default SockJS CDN [SPR-12254] #16868
- AnnotationUtils provides poor diagnostics if getDeclaredAnnotations throws an exception [SPR-12325] #16930
- Improve diagnostics when AnnotationAttributesReadingVisitor triggers an ArrayStoreException from Class.getAnnotations() [SPR-12387] #16995
- Log context cache statistics in the TestContext framework [SPR-12409] #17017
🪲 Bug Fixes
- SocketUtils should not be an abstract class [SPR-12169] #16783
- Regression: Slow TypeDescriptor lookups in CachedIntrospectionResults on IBM JVM 6 [SPR-12185] #16799
- Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
@Qualifier
resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805- WebSocketMessageBrokerConfigurationSupport requiring JDK 7+ due to setRemoveOnCancelPolicy [SPR-12238] #16852
- org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
- Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
- Duplicate entries in ResolvableType cache [SPR-12275] #16880
- DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
- Provider<...> declaration for
@Value
method argument fails with TypeMismatchException [SPR-12297] #16903 - TextMessage.toString() throws StringIndexOutOfBoundsException if payload contains multibyte characters [SPR-12307] #16912
- Private
@Scheduled
methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913 - Regression: Commons Logging setup in AnnotationUtils causes early initialization of logging system [SPR-12329] #16934
- ServerEndpointExporter causes refresh to fail with java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available [SPR-12340] #16945
- Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
- Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
- ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
- ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
- PersistenceAnnotationBeanPostProcessor should check for PersistenceContext.synchronization method instead of synchronizationType [SPR-12396] #17004
- HIbernateJpaSessionFactory only works for hibernate < 4.3 [SPR-12401] #17009
- ShallowEtagHeaderFilter is not Servlet 2.5 compatible [SPR-12414] #17022
- StompDecoder StringIndexOutOfBoundsException with Apache ActiveMQ [SPR-12418] #17025
- Java 8 introspection causes breakage with FreeMarker Configuration bean [SPR-12448] #17053
📔 Documentation
- ContextLoaderServlet is mentioned in doc, but does not exist [SPR-7725] #12381
- condition vs. conditional typo in
@Cacheable
reference documenation [SPR-12273] #16878 - TimerTaskExecutor wasn't removed from documentation [SPR-12389] #16997
- task:executor keep-alive not explained in documentation [SPR-12407] #17015
3.2.12 Release
⭐ New Features
- Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
- HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
- Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
- Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
- Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
- Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
- Log context cache statistics in the TestContext framework [SPR-12409] #17017
🪲 Bug Fixes
@Qualifier
resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805- org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
- Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
- DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
- Provider<...> declaration for
@Value
method argument fails with TypeMismatchException [SPR-12297] #16903 - Private
@Scheduled
methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913 - Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
- Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
- ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
- ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
@Import
in another annotation still results in double scan [SPR-12334] #16939- util:map does not recognize the attribute of value-type [SPR-10994] #15622
📔 Documentation
- ContextLoaderServlet is mentioned in doc, but does not exist [SPR-7725] #12381
4.1.1 Release
⭐ New Features
- Allow configuring custom executor with WebSocket message broker [SPR-12272] #16877
- Clarify the single class restriction with
@JsonView
for a response body advice [SPR-12270] #16875 - PreparedStatement#setBlob(int, InputStream) is not supported in DefaultLobCreator [SPR-12265] #16870
- Update default SockJS CDN [SPR-12254] #16868
- Message broker thread pools should be set up in allowCoreThreadTimeOut mode [SPR-12249] #16863
- Consistent Environment access in XML bean definition parsing code [SPR-12248] #16862
- Create builder for Jackson ObjectMapper [SPR-12243] #16857
- Data binding with java.util.Optional: traversal of nested paths, detection of empty holders [SPR-12241] #16855
- INSERT SELECT of large CLOB causes ORA-01461 on setString [SPR-12240] #16854
- LocalSessionFactoryBean doesn't support JPA 2.1 auto-apply
@Converter
on Hibernate 4.3 [SPR-12234] #16849 - Expose
@Bean
method metadata in the BeanDefinition [SPR-12232] #16847 - Provide subclassing hooks in PathMatchingResourcePatternResolver [SPR-12231] #16846
- Explicitly release rolled-back database savepoints during (long-running) transaction [SPR-12228] #16843
- Further optimize ReflectionUtils.isCglibRenamedMethod [SPR-12227] #16842
- Support Jackson based XML serialization in RestTemplate [SPR-12225] #16840
- Improve performance of MapPropertySource.containsProperty [SPR-12224] #16839
- JndiLocatorDelegate.isDefaultJndiEnvironmentAvailable() should apply stronger checks [SPR-12223] #16838
- Support ordering of conditions [SPR-12219] #16833
- Allow configuring custom HandlerMethodArgumentResolver and HandlerMethodReturnValueHandler [SPR-12217] #16831
- DISCONNECT messages created in StompSubProtocolHandler do not contain user information [SPR-12215] #16829
- Add JavaConfig equivalent of tx:jta-transaction-manager [SPR-12197] #16811
- Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
- Add spring macros support for Groovy Markup Templates [SPR-12193] #16807
- Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
- Access to propertySources in CompositePropertySource [SPR-12182] #16796
- Set Jackson DEFAULT_VIEW_INCLUSION property to false by default [SPR-12179] #16793
- Using websocket scope in application event listener [SPR-12172] #16786
- Consistent support for java.util.Optional for all applicable handler method arguments [SPR-12171] #16785
- XML bean singleton attribute silently ignored [SPR-12167] #16781
- Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
- SessionDisconnectEvent should extend AbstractSubProtocolEvent [SPR-12156] #16770
- Use DEBUG log level for broken WebSocket client connections or write failures [SPR-12155] #16769
- ResponseBodyAdvice to accept null values? [SPR-12152] #16766
- FormHttpMessageConverter writes ASCII encoded so that a multipart form data can not contain filenames with German Umlaute [SPR-12108] #16724
- Set Jackson FAIL_ON_UNKNOWN_PROPERTIES property to false by default [SPR-11891] #16510
- please let context:component-scan base-package eval placeholder then split by comma [SPR-10425] #15058
- make context:exclude-filter expression supports placeholder like context:component-scan base-package [SPR-10424] #15057
- Improve
@RequestParam
defaultValue's value JavaDoc [SPR-9967] #14601 - Section 15.3.2 - example description not matching example code [SPR-8025] #12680
🪲 Bug Fixes
- Java 8 introspection causes breakage with FreeMarker Configuration bean [SPR-12448] #17053
- Duplicate entries in ResolvableType cache [SPR-12275] #16880
- MethodReference isn't thread-safe [SPR-12269] #16874
- Spring 4.1 with WebMvcConfigurationSupport enabled does not register a default view resolver [SPR-12267] #16872
- Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
- org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
- Sending message in ApplicationListener results in ERROR level logging [SPR-12247] #16861
- PropertySource overrides do not work with more than one classpath file [SPR-12244] #16858
- Regression: HttpEntityMethodProcessor does not support HttpEntity subclasses anymore [SPR-12242] #16856
- WebSocketMessageBrokerConfigurationSupport requiring JDK 7+ due to setRemoveOnCancelPolicy [SPR-12238] #16852
- Regression in
@Condition
exclusion [SPR-12233] #16848 - Protobuf support for Spring MVC 4.1 doesn't work with default settings [SPR-12229] #16844
- Exception in "inboundClientChannel" interceptor for DISCONNECT prevents broker from learning about it [SPR-12218] #16832
- Unexpected override order for
@Configuration
based property sources [SPR-12198] #16812 - NoUniqueBeanDefinitionException when autowiring static nested class that extends its containing class [SPR-12195] #16809
- Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
- Regression: Slow TypeDescriptor lookups in CachedIntrospectionResults on IBM JVM 6 [SPR-12185] #16799
- Message listener container does not apply proper recovery anymore [SPR-12183] #16797
- Enum to String conversion broken for subclasses [SPR-12181] #16795
- Race condition in ReloadableResourceBundleMessageSource since 4.1.0 [SPR-12177] #16791
- JDBC conversion exception for enum types on MySQL [SPR-12174] #16788
- SocketUtils should not be an abstract class [SPR-12169] #16783
- Fix ResourceUrlProvider path check in getForRequestUrl [SPR-12158] #16772
- getObject(index, requiredType) fails for BigInteger on Derby [SPR-12...
4.1 GA Release
⭐ New Features
- Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
- allow value expressions for messaging listener annotation destinations [SPR-12134] #16750
- Call to addResourceLocations should not always be mandatory [SPR-12133] #16749
- Consider enhancing ResourceUrlProvider to be able to change the domain, port, or scheme [SPR-12130] #16746
- Update MVC namespace to match improvements made to the Java config in RC2 [SPR-12129] #16745
- Provide full control over the registration of resolvers and transformers in ResourceHandlerRegistration [SPR-12124] #16740
- RestTemplate does not render correct url for server ports [SPR-12123] #16739
- Performance issue on ResolvableType cache [SPR-12122] #16738
- Include http status code in ServletRequestHandledEvent [SPR-12119] #16735
- Consider adding static badRequest() builder method to ResponseEntity [SPR-12112] #16728
- PropertySources added via
@PropertySource
aren't available in the environment during component scanning [SPR-12111] #16727 - Placeholder resolution within
@PropertySource
resource locations can not resolve properties from prior sources [SPR-12110] #16726 - Remove synchronization around filteredPropertyDescriptorsCache in case of non-existing entry [SPR-12106] #16722
- Use putIfAbsent in CachedIntrospectionResults.addTypeDescriptor [SPR-12102] #16718
- MockHttpServletRequest should honor scheme in isSecure() method [SPR-12098] #16714
- PathMatchingResourcePatternResolver cannot search for "classpath*" patterns in a jar file roots [SPR-12095] #16711
- SchedulerAccessorBean should be able to find a default Scheduler [SPR-12094] #16710
- Convenient EhCache CacheManager setup in an
@Bean
method [SPR-12093] #16709 - Allow customizing the SockJsMessageCodec in WebSocket Java config and XML namespace [SPR-12091] #16707
- MockHttpServletRequest should honor "Host" header in getServerName() and getServerPort() [SPR-12088] #16704
- Add Exception tracking to JamonPerformanceMonitorInterceptor [SPR-12068] #16684
- Allow configuring custom redirect prefix in HandlerMethodReturnValueHandler's [SPR-12054] #16670
- Too many exception stack traces related to disconnected SockJS clients [SPR-11870] #16489
- Support ignoreResourceNotFound as attribute of util:properties [SPR-10614] #15242
- ReloadableResourceBundleMessageSource locks properties hashmap and fails under load. [SPR-10500] #15133
- Unnecessarily conservative locking in registerDependentBean is a bottleneck [SPR-8814] #13456
- Can't insert into nvarchar2 using SimpleJdbcInsert whereas it works with SimpleJdbcTemplate [SPR-8571] #13215
- Refactor AssertThrows to support Throwable instead of Exception [SPR-6362] #11028
🪲 Bug Fixes
- Jackson
@JSONView
not taken in account when using XML serialization [SPR-12149] #16763 - CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
- InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation called with wrong beanClass for bean declared on JavaConfig [SPR-12142] #16756
- Plain FactoryBean declaration on
@Bean
method leads to early call (pre injection) [SPR-12141] #16755 - InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation not called for bean declared on JavaConfig [SPR-12140] #16754
- CssLinkResourceTransformer does not use resolveUrlPath properly [SPR-12137] #16752
- Metadata provided by ImportAware ignores conditions and is dependent on the order of the configuration classes [SPR-12128] #16744
- GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
- OpenEntityManagerInViewInterceptor doesn't always close connections with WildFly 8 [SPR-12118] #16734
- PropertySource named cannot be added relative to itself (
@PropertySource
processing fails) [SPR-12115] #16731 - MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
- Wrong string equality in Indexer [SPR-12105] #16721
- ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
@Async
Supporting ListenableFuture not applied with AspectJ [SPR-12092] #16708- UncaughtExceptionHandler is not configured with AspectJ [SPR-12090] #16706
- getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- LazyInitTargetSourceCreator does not work in Java-based configuration [SPR-10508] #15140
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476
📔 Documentation
- Document how to register custom MIME type in MockServletContext [SPR-12126] #16742
- Update reference docs table 29.1. (Cache SpEL available metadata) with
@CachePut
details [SPR-12125] #16741 - Update documentation to describe the resource handling additions in 4.1 [SPR-12117] #16733
- Update reference for JSONP support [SPR-12113] #16729
- Documentation misses chapters 4.13 and 4.14 [SPR-12107] #16723
- Document support for merging custom TELs with default TELs in the reference manual [SPR-12083] #16699
- Document automatic discovery of default TestExecutionListeners in the reference manual [SPR-12082] #16698
- Document
@TestPropertySource
support in the reference manual [SPR-12076] #16692 - Document Groovy script support in the TestContext framework in the reference manual [SPR-12027] #16643
- Document programmatic test transaction management support [SPR-11941] #16558
- Document
@Sql
script support in the reference manual [SPR-11849] #16468 - No real documentation on using the spring mvc artifact [SPR-11534] #16159
- Document JCache configuration in the cache section [SPR-10176] [#14809](https://github.com/s...