Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
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...
4.0.7 Release
⭐ New Features
- Performance issue on ResolvableType cache [SPR-12122] #16738
- Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
- BeanNameViewResolver should not try to use non-View beans [SPR-12079] #16695
- AbstractTypeHierarchyTraversingFilter should be more lenient when loading types [SPR-12042] #16658
- ConcurrentMapCacheManager has interdependent setters [SPR-12026] #16642
- RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633
- Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
- XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966
🪲 Bug Fixes
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476 - getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
- ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
- MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
- Plain FactoryBean declaration on
@Bean
method leads to early call (pre injection) [SPR-12141] #16755 - CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
- Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
- includeFilters and excludeFilters of
@ComponentScan
cause failures when used in meta-annotations [SPR-12065] #16681 - Spring may invoke
@Bean
methods too early in case of a circular reference [SPR-12018] #16634 - AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
- Non-stable BeanCurrentlyInCreationException with wrong Java config [SPR-12004] #16620
- Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
- NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
- StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
- UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
- Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634
📔 Documentation
- Incorrect documentation for AbstractAnnotationConfigDispatcherServletInitializer.getServletConfigClasses() [SPR-12028] #16644
- Documentation typo [SPR-12020] #16636
- user destinations docs are missing the brokerPrefix [SPR-11992] #16608
- Remove outdated IDE, JIRA and Tomcat references [SPR-7521] #12179
3.2.11 Release
⭐ New Features
- XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966
- Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
- RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633
🪲 Bug Fixes
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476 - Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634
- getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
- StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
- NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
- Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
- AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
- Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
- MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- Plain FactoryBean declaration on
@Bean
method leads to early call (pre injection) [SPR-12141] #16755 - CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
4.1 RC2 Release
⭐ New Features
- Improve Reference Documentation about Spring JMS (infrastructure) [SPR-12073] #16689
- Make
@Payload
as ElementType.METHOD too [SPR-12071] #16687 - Consider adding static notFound() builder method to ResponseEntity [SPR-12070] #16686
- JmsMessagingExceptionTranslator package tangle [SPR-12064] #16680
- Add more HttpHeaders constants for standard HTTP headers [SPR-12063] #16679
- Improve exception message: Default SmartContextLoaders do not support locations and
@Configuration
classes simultaneously [SPR-12060] #16676 - Shortcut method for building HEAD requests with MockMvcRequestBuilders [SPR-12055] #16671
- Introduce
@TestPropertySource
support in the TestContext framework [SPR-12051] #16667 - String to Enum Interface conversion not working [SPR-12050] #16666
- Missing custom entity type filter in LocalSessionFactoryBean [SPR-12049] #16665
- Improve comment in RuntimeTestWalker [SPR-12044] #16660
- Document that MockHttpServletRequest does not comply with Servlet spec regarding Accept-Language header [SPR-12043] #16659
- SpEL Compiler: Make OpModulus compilable [SPR-12041] #16657
- JmsListener/ScheduledAnnotationBeanPostProcessor should use SmartInitializingSingleton instead of ContextRefreshedEvent [SPR-12039] #16655
- JmsMessagingTemplate should not throw JmsException directly [SPR-12038] #16654
- Update JmsMessagingTemplate to support MessageRequestReplyOperations [SPR-12037] #16653
- Enhance ResourceHandlerRegistration API for resource transformers/resolvers [SPR-11982] #16598
- Isolation support for JPA with Hibernate EntityManager 4 [SPR-11942] #16559
- Provide initial support for Undertow 1.1 [SPR-11914] #16533
- Support Jackson2 based XML serialization/deserialization [SPR-11785] #16407
@Configuration
imported via@ImportResource
is not processed [SPR-11723] #16345- Introduce mechanism for automatic discovery of default TestExecutionListeners [SPR-11466] #16092
@Configuration
imported via ImportBeanDefinitionRegistrar is not processed as configuration [SPR-11430] #16056- Support for JSR-356 on WebLogic 12.1.3 [SPR-11293] #15917
- BeanFactory lacks method for getting bean by type with specified constructor arguments [SPR-11235] #15860
- Support Groovy scripts for bean definitions in the TestContext framework [SPR-11233] #15858
- Compatibility with GlassFish 4.1 and Tyrus 1.8 (WebSocket 1.1) [SPR-11094] #15720
@ComponentScan
does not allow for registering beans with lazy initialization [SPR-10459] #15092- Spel Implicit Map [SPR-9472] #14107
- Hibernate4 version of SpringSessionContext.currentSession() does not create a session if TransactionSynchronizationManager does not contain one [SPR-9020] #13659
- readOnly transaction doesn't work with JPA and Hibernate 4 [SPR-8959] #13599
- Introduce mechanism for registering default TELs if a custom TEL is registered via
@TestExecutionListeners
[SPR-8854] #13496 - UrlBasedViewResolver should implement setExposedContextBeanNames (not InternalResourceViewResolver) [SPR-8064] #12719
- Passing lookup-method arguments to created bean constructor [SPR-7431] #12089
- Spring REST
@MVC
: Add support for google Protocol Buffers resource representation format [SPR-5807] #10477 @LookupMethod
annotation for use with component scanning [SPR-5192] #9865- Binding in Velocity templates using EL accessors ([, ]) for collections produces non xhtml strict compliant output [SPR-5172] #9845
- HibernateJpaDialect does not support setting a specific isolation level per transaction [SPR-5012] #9687
- How to implement Pessimistic Locking with JPA [SPR-3812] #8492
- Implement synchronous request / response logic in JmsTemplate [SPR-3332] #8017
🪲 Bug Fixes
- SpEL Compiler: NPE on Indexer compilation, when is used map accessor [SPR-12045] #16661
- SpEL Compiler produces incompatible code with method generic returns [SPR-12040] #16656
- SockJsClient doesn't propagate "subProtocols" and "extensions" to the handshake request [SPR-12030] #16646
- NPE in DefaultListableBeanFactory#getPriority [SPR-12024] #16640
- Restore method signature for ViewControllerRegistration.setViewName [SPR-12016] #16632
- NPE in Elvis Expression (ExitTypeDescriptor null) [SPR-12014] #16630
- ThymeleafViewResolver not used by Spring 4.1 resulting in "circular view path" error [SPR-12013] #16629
- Spring 4.1 schema issues [SPR-12011] #16627
📔 Documentation
- Update references to RFC 2616 [SPR-12067] #16683
- Improve documentation for using "." vs "/" as separators with STOMP/WebSocket messaging [SPR-12007] #16623
- Add documentation for Java SockJS client [SPR-12006] #16622
- Enrich Spring reference documentation (Websocket Support section) with details on how to filter messages [SPR-11952] #16568
- No messaging module overview in the 2.2. Modules section [SPR-11847] #16466
- Document how to use custom
@Cacheable
annotation with AspectJ [SPR-11503] #16128 - Create an epub version of the Spring framework reference [SPR-11167] #15793
- Doc: Spring MVC and the most 'specific'
@RequestMapping
URL pattern [SPR-10576] #15205 - Explicitly mention proper URL-escaping in RestTemplate, UriTemplate, and UriComponents API Javadoc [SPR-10497] #15130
- Documentation does not explain how
@Cacheable
and@CacheEvict
behave in a multi-threaded environment [SPR-9588] #14222 - [doc] CSRF prevention support in spring form controller [SPR-6125] #10793
4.1 RC1 Release
⭐ New Features
- AnnotationUtils should use threadsafe ConcurrentMap (contention) [SPR-12878] #17476
- Customize concurrency per JMS listener [SPR-11988] #16604
- DefaultBeanDefinitionDocumentReader should ignore the 'profile' attribute for custom namespaces [SPR-11975] #16591
- Add ability to check specific error on field within Spring MVC test framework [SPR-11971] #16587
- Support JMS 2.0's shared consumers in message listener containers [SPR-11969] #16585
- Add hooks in spring-messaging for Spring Security [SPR-11966] #16582
- Add AppCacheResourceTransformer for HTML5 offline applications [SPR-11964] #16580
- Ordering of MessageConverters in AbstractMessageBrokerConfiguration [SPR-11961] #16577
- SQLExceptionTranslators do not reliably translate QueryTimeoutException [SPR-11959] #16575
- Reduce PlatformTransactionManager lookups in TransactionAspectSupport [SPR-11954] #16570
- Optimize logging at different levels with WebSocket/Messaging [SPR-11943] #16560
- Add support for caching destination resolver [SPR-11939] #16556
- Support for Types.NCLOB in SqlLobValue to simplify use with NamedParameterJdbcTemplate. [SPR-11938] #16555
- Support for argument-resolvers and return-value-handlers in MVC namespace [SPR-11927] #16545
- Seamless support for Groovy bean definitions mixed with XML bean definitions [SPR-11924] #16542
@Async
Supporting ListenableFuture [SPR-11909] #16528- Introduce
@SqlConfig
for common SQL script configuration [SPR-11896] #16515 - Provide lock free access to BeanFactory methods by calling BF methods on the AbstractApplicationContext instance directly [SPR-11863] #16482
- ServletUriComponentsBuilder should consider X-Forwarded-Host [SPR-11855] #16474
- Add HTTP status code 308 Permanent Redirect [SPR-11854] #16473
- Add missing HandshakeInterceptor configuration to WebSocket config [SPR-11845] #16464
- HttpInvokerProxyFactoryBean and co do not reliably expose correct type when declared via
@Bean
[SPR-11842] #16461 - Support for java.util.Optional with
@Inject
(a la@Autowired
's required=false) [SPR-11833] #16452 - Support for java.util.Optional as a
@RequestParam
[SPR-11829] #16448 - MarshallingView does not support JAXBElement value by default [SPR-11827] #16446
- Extend MockRestServiceServer to support AsyncRestTemplate [SPR-11822] #16442
- Make ListenableFuture lambda compliant [SPR-11820] #16440
- MessageReceivingOperations returns 'null' if the payload cannot be converted [SPR-11817] #16437
- Create a common interface for AnnotationConfigApplicationContext and AnnotationConfigWebApplicationContext [SPR-11814] #16434
- Add events for subscribe/unsubscribe stomp commands [SPR-11813] #16433
- Enhance ResourceHttpRequestHandler with ResourceTransformer strategy [SPR-11800] #16420
- Expose current HttpServletResponse for autowiring [SPR-11795] #16416
- Support Groovy markup templating in Spring MVC [SPR-11789] #16411
- Support org.springframework.messaging.Message as an alternative to MessageCreator in the JMS support [SPR-11772] #16394
- Allow configuration of path mapping options for websocket handler mapping (e.g. alwaysUseFullPath) [SPR-11771] #16393
- Add SQL error code mapping for SAP HANA database [SPR-11770] #16392
@ComponentScan
should get processed without@Configuration
as well [SPR-11769] #16391- Move Spring Boot's YAML properties into the core framework. [SPR-11767] #16389
- MockHttpServletRequest should not require setContent for non-null getInputStream() result [SPR-11764] #16386
- Path matching options in MVC Java/XML config should apply to all handler mappings [SPR-11753] #16375
- Provide builders for HttpEntity and ResponseEntity [SPR-11752] #16374
- Make constants in HttpHeaders public [SPR-11749] #16371
- Improve reconnect attemps option in DefaultMessageListenerContainer [SPR-11746] #16368
- Expose STOMP/WebSocket monitoring info and internal stats [SPR-11739] #16361
- Skip Java immutable objects in session when processing the accessed attributes [SPR-11738] #16360
- Cacheable javadoc wrongly explains how cache keys are generated [SPR-11736] #16358
- Auto-proxy creation should not consider GroovyObject as a user-specified interface [SPR-11715] #16337
- Introduce isAnnotation() in ClassMetadata API [SPR-11711] #16333
- Add support of
@SendTo
for JMS listeners [SPR-11707] #16329 - Detect default JmsListenerContainerFactory automatically [SPR-11706] #16328
- Add support for
@RequestMapping
method return values of type ListenableFuture [SPR-11695] #16317 - Cannot add script after setting scripts in ResourceDatabasePopulator [SPR-11691] #16313
- Assert preconditions in ResourceDatabasePopulator [SPR-11690] #16312
- SchedulerFactoryBean should support non-durable jobs as well [SPR-11689] #16311
- Expose Spring MVC handled exception as request attribute when no view rendering is required [SPR-11686] #16309
- Allow use of "." as path separator in
@MessageMapping
methods and in simple broker [SPR-11660] #16283 - Use javax.annotation.Priority as an alternative for
@Order
[SPR-11639] #16262 - Introduce execute(DataSource) in ResourceDatabasePopulator [SPR-11629] #16252
- Relax websocket-enabled attribute on websocket:sockjs [SPR-11624] #16247
- CglibAopProxy needs to detect package-visible methods when defined in a different ClassLoader [SPR-11618] #16241
- Create a synchronous SettableListenableFuture implementation [SPR-11614] #16237
- JdbcTemplate should support JDBC 4.1 getObject(columnIndex, type) [SPR-11600] #16223
- Support RECEIPT frame on disconnect [SPR-11599] #16222
- Exception handling with SimpleApplicationEventMulticaster [SPR-11551] #16176
- Add supp...
3.2.10 Release
⭐ New Features
- Misleading exception message for using JPA with custom IsolationLevels [SPR-8325] #12974
- Revisit class cache in CachedIntrospectionResults [SPR-11867] #16486
- Performance regression for custom autowireBean calls with many properties [SPR-11875] #16494
- ReflectionUtils slow down application startup on WebSphere [SPR-11882] #16501
- Improve performance of ReflectionUtils.isCglibRenamedMethod [SPR-11894] #16513
- Consistent declaration of private static final logger variables [SPR-11905] #16524
- Manually registered transaction manager are not recognized by qualifiedBeanOfType [SPR-11915] #16534
- Unclear error message on BeanPostProcessor returning null [SPR-11951] #15997
🪲 Bug Fixes
- RequestAttributes in FrameworkPortlet [SPR-11295] #15919
- StandardPortletEnvironment is not properly populated [SPR-11816] #16436
- isGlobalRollbackOnly always returns 'false' with WebSphereUOWTransactionManager [SPR-11876] #16495
- MBeanExportConfiguration.SpecificPlatform never calls afterPropertiesSet() [SPR-11877] #16496
- URIComponentsBuilder shares state across calls of .build() [SPR-11885] #16504
- Spring 3.2.9 breaks JBoss EAP 5.1.1 VFS compatibility [SPR-11887] #16506
- HttpHeaders fails to return getAllow() if it was previously set to an empty collection [SPR-11917] #16536
- Objects created by FactoryBeans might get processed multiple times by BeanPostProcessors if beans are created lazily [SPR-11937] #16554
- Backward compatibility issue in RestTemplate's messageConverters after SPR-11351 [SPR-11962] #16578
- Java 8: ASM5 visitors required for parsing INVOKESPECIAL/STATIC on interfaces [SPR-11979] #16595
📔 Documentation
- Dead link to "MVC application step-by-step" guide [SPR-11935] #16552
4.0.6 Release
⭐ New Features
- TypedValue should have proper equals(…) / hashCode() methods [SPR-11960] #16576
- Improve logic for removing subscriptions from DefaultSubscriptionRegistry [SPR-11930] #16548
- Shared EntityManager should immediately throw TransactionRequiredException if no transaction in progress [SPR-11923] #16541
- Workaround for Wildfly WFLY-3474 NPE in HttpServletResponse.getHeaders [SPR-11919] #16538
- Manually registered transaction manager are not recognized by qualifiedBeanOfType [SPR-11915] #16534
@Async
isn't applied, if the interface doesn't have concrete implementation [SPR-11910] #16529- Consistent declaration of private static final logger variables [SPR-11905] #16524
- Improve performance of ReflectionUtils.isCglibRenamedMethod [SPR-11894] #16513
- Check inactive WebSocket/SockJS sessions before they're connected on the STOMP level [SPR-11884] #16503
- ReflectionUtils slow down application startup on WebSphere [SPR-11882] #16501
- Performance regression for custom autowireBean calls with many properties [SPR-11875] #16494
- Revisit class cache in CachedIntrospectionResults [SPR-11867] #16486
- Unloadable nested classes in
@Import
should not fail if associated conditions exclude them anyway [SPR-11844] #16463 - Unclear error message on BeanPostProcessor returning null [SPR-11951] #15997
- Misleading exception message for using JPA with custom IsolationLevels [SPR-8325] #12974
🪲 Bug Fixes
- remove jackson dependency in AbstractHttpReceivingTransportHandler [SPR-11963] #16579
- Backward compatibility issue in RestTemplate's messageConverters after SPR-11351 [SPR-11962] #16578
- CachingConnectionFactory doesn't properly cache all consumers with JMS 2.0 [SPR-11956] #16572
- CachedMessageProducer does not support all JMS 2.0 MessageProducer methods [SPR-11950] #16567
- CachingConnectionFactory doesn't properly cache producers with JMS 2.0 [SPR-11949] #16566
- Objects created by FactoryBeans might get processed multiple times by BeanPostProcessors if beans are created lazily [SPR-11937] #16554
- DefaultSubscriptionRegistry does not update destination cache when subscribed twice to same destination [SPR-11931] #16549
- Prevent accumulation of cancelled SockJS heartbeat tasks [SPR-11918] #16537
- HttpHeaders fails to return getAllow() if it was previously set to an empty collection [SPR-11917] #16536
- Fix session initialization concurrency issue in SockJS session implementations [SPR-11916] #16535
- Regression: Form select tag forces "multiple" attribute even when explicitly set to false [SPR-11903] #16522
- [TypeDescriptor] Unable to obtain nested generic from ? at level 1 [SPR-11898] #16517
- Spring 3.2.9 breaks JBoss EAP 5.1.1 VFS compatibility [SPR-11887] #16506
- URIComponentsBuilder shares state across calls of .build() [SPR-11885] #16504
- MBeanExportConfiguration.SpecificPlatform never calls afterPropertiesSet() [SPR-11877] #16496
- isGlobalRollbackOnly always returns 'false' with WebSphereUOWTransactionManager [SPR-11876] #16495
- AnnotationUtils.findAnnotation fails with poor diagnostics if it encounters an Annotation that references an unloadable class [SPR-11874] #16493
- Infinite loop caused by import of XML configuration that declares a ConfigurationClassPostProcessor [SPR-11858] #16477
- Unsubscribing from an endpoint that no longer exists throws NPE [SPR-11832] #16451
- StompSubProtocolHandler eventPublisher being cleared by SubProtocolWebSocketHandler [SPR-11825] #16444
- StandardPortletEnvironment is not properly populated [SPR-11816] #16436
- RequestAttributes in FrameworkPortlet [SPR-11295] #15919
📔 Documentation
4.0.5 Release
⭐ New Features
- Improve prefix detection in StringUtils.cleanPath [SPR-11793] #16414
- StandardServletMultipartResolver should support lazy resolution along the lines of CommonsMultipartResolver [SPR-11730] #16352
🪲 Bug Fixes
- StringUtils.parseLocaleString: locale variant cannot contain country code [SPR-11806] #16426
- getTestExecutionListeners() doesn't detect NoClassDefFoundError within BeanInstantiationException [SPR-11804] #16424
- SPR-10829: Spring JMS problem with Oracle AQ still exists if underlying DataSource is decorated [SPR-11791] #16412
@Conditional
may prevent an import from taking effect [SPR-11788] #16410- JDBC findColumn gives wrong result in case of duplicate column labels [SPR-11786] #16408
- MemorySafeUndeclaredThrowableStrategy class not found [SPR-11782] #16404
- PropertyEditorRegistrySupport throws ExceptionInInitializerError when on endorsed classpath [SPR-11780] #16402
- Protect against security exploits via system identifier in DTD declaration [SPR-11768] #16390
- Regression: GenericTypeResolver returns null for partially resolvable type arguments [SPR-11763] #16385
- IdToEntityConverter throws Access Denied exception within Spring MVC application on WebSphere 8.x [SPR-11758] #16380
- ConcurrentModificationException in DefaultSubscriptionRegistry cache [SPR-11755] #16377
- Servlet 3 multipart parameter binding does not work on Weblogic12c (12.1.2.0) [SPR-11074] #15700
📔 Documentation
- Chapter 34.4 title is chopped off [SPR-11751] #16373
3.2.9 Release
⭐ New Features
- Overriding bean definition message does not take parent definition into account [SPR-9671] #14305
- CollectionToCollectionConverter.convert() improvement for untyped collections [SPR-11479] #16104
- Treat empty log config refresh interval as infinite interval in Log4jWebConfigurer [SPR-11507] #16132
- Improve exception message for failed property access in SpEL [SPR-11535] #16160
- ResizableByteArrayOutputStream and ByteArrayOutputStream capacities [SPR-11594] #16218
- MarshallingView should avoid temporary byte array when copying to response [SPR-11646] #16269
- Fix/optimize handling of
@Bean
method override regression with return type narrowing on JDK 8 [SPR-11718] #16340 - Metadata reading should never use ASM for java.* and javax.* types (in particular on JDK 8) [SPR-11719] #16341
- AbstractAdvisingBeanPostProcessor.isEligible(…) does not consider proxy interfaces [SPR-11725] #16347
- StandardServletMultipartResolver should support lazy resolution along the lines of CommonsMultipartResolver [SPR-11730] #16352
- AbstractMarshaller should avoid SAXSource workaround when processExternalEntities=true [SPR-11737] #16359
- Improve prefix detection in StringUtils.cleanPath [SPR-11793] #16414
- ConfigurationClassParser.invokeAwareMethods(…) does not consider EnvironmentAware [SPR-11744] #16366
- Basic Java 8 bytecode compatibility for Spring 3.2.x through ASM 5.0.2 [SPR-11656] #16279
🪲 Bug Fixes
- Java config FactoryBean proxy causes class loader leak [SPR-9274] #13912
- Unsafe fallback pointcut construction in AspectJExpressionPointcut [SPR-9335] #13973
- Servlet 3 multipart parameter binding does not work on Weblogic12c (12.1.2.0) [SPR-11074] #15700
- double evaluation of method arguments in SpEL [SPR-11445] #16071
- XmlValidationModeDetector: length of a string is always greater than index of any of its characters [SPR-11477] #16102
- SpringBeanELResolver - setValue throws PropertyNotWritableException [SPR-11502] #16127
- Unable to retrieve FlashMap when target parameters are encoded [SPR-11504] #16129
- Default KeyGenerator doesn't work for methods with arguments of array types [SPR-11505] #16130
- Spring MVC Test can fail to obtain async result due to timing issue [SPR-11516] #16141
- ConstructorResolver will generate NPE in case of no factory method found when there are explicit args [SPR-11517] #16142
- Memory leak when using annotation based auto-wiring in child context [SPR-11520] #16145
- Providing unique names to prototype inner beans causes excessive memory and CPU use [SPR-11545] #16170
- BufferedImageHttpMessageConverter fails if JAI is installed [SPR-11581] #16205
- Log Forging in DispatcherServlet via requestURI [SPR-11591] #16215
- AbstractApplicationEventMulticaster can leak classes [SPR-11606] #16229
- Referencing static field of class that extends Map in expression language causes class cast exception [SPR-11609] #16232
- Servlet mocks are not reinjected into test instance between TestNG test methods [SPR-11626] #16249
- ResourceHttpRequestHandler not closing Resource's input stream [SPR-11644] #16267
- UrlResource.exists() does not properly detect JBoss vfszip resources [SPR-11676] #16299
- ConcurrentReferenceHashMap doesn't limit upper concurrency level [SPR-11720] #16342
- SpringProperties: the ClassLoader might be null, if class is loaded by the bootstrap class loader [SPR-11721] #16343
- If-Modified-Since header is parsed as HTTP-date; but IE 10 sends length [SPR-11727] #16349
- JRubyScriptUtils fails against JRuby 1.7.12 with NullPointerException in findClassNode [SPR-11747] #16369
- IdToEntityConverter throws Access Denied exception within Spring MVC application on WebSphere 8.x [SPR-11758] #16380
- Protect against security exploits via system identifier in DTD declaration [SPR-11768] #16390
- JDBC findColumn gives wrong result in case of duplicate column labels [SPR-11786] #16408
- SPR-10829: Spring JMS problem with Oracle AQ still exists if underlying DataSource is decorated [SPR-11791] #16412
- getTestExecutionListeners() doesn't detect NoClassDefFoundError within BeanInstantiationException [SPR-11804] #16424
- StringUtils.parseLocaleString: locale variant cannot contain country code [SPR-11806] #16426