Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
4.0.4 Release
⭐ New Features
- AbstractMarshaller should avoid SAXSource workaround when processExternalEntities=true [SPR-11737] #16359
- AbstractAdvisingBeanPostProcessor.isEligible(…) does not consider proxy interfaces [SPR-11725] #16347
- Metadata reading should never use ASM for java.* and javax.* types (in particular on JDK 8) [SPR-11719] #16341
- Fix/optimize handling of
@Bean
method override regression with return type narrowing on JDK 8 [SPR-11718] #16340 - Skip multipart checking so that multipart errors can be handled in an
@Controller
method using Servlet 3 [SPR-11716] #16338 - Improve Servlet 3 presence check in ServletServerHttpResponse [SPR-11712] #16334
- ShallowEtagHeaderFilter should write body early when HttpServletResponse.sendError() is called [SPR-11705] #16327
- XStreamMarshaller: Can't parse XML with '_' in the attribute names [SPR-11702] #16324
- Support EOF as statement separator in SQL scripts [SPR-11687] #16310
- no msg when cannot authorize against external queue [SPR-11673] #16296
- Improve handling of disconnect events in STOMP broker relay [SPR-11655] #16278
- MarshallingView should avoid temporary byte array when copying to response [SPR-11646] #16269
- Optimize performance of escaping in StompEncoder and StompDecoder [SPR-11643] #16266
- XStreamMarshaller forces XPP dependency [SPR-11635] #16258
- Support simultaneous use of classes and locations in
@ContextConfiguration
[SPR-11634] #16257 - Update NativeWebSocketSession getters to return basic information required after close [SPR-11621] #16244
- Overriding bean definition message does not take parent definition into account [SPR-9671] #14305
🪲 Bug Fixes
- Generics and caching causing issues [SPR-13358] #17942
- JRubyScriptUtils fails against JRuby 1.7.12 with NullPointerException in findClassNode [SPR-11747] #16369
- If-Modified-Since header is parsed as HTTP-date; but IE 10 sends length [SPR-11727] #16349
- SpringProperties: the ClassLoader might be null, if class is loaded by the bootstrap class loader [SPR-11721] #16343
- ConcurrentReferenceHashMap doesn't limit upper concurrency level [SPR-11720] #16342
- ShallowEtagHeaderFilter setContentLength on include [SPR-11717] #16339
- AnnotationReadingVisitorUtils.getMergedAnnotationAttributes() mutates the map argument [SPR-11710] #16332
- ClassCastException when evaluating the eq/ne operator in the EL [SPR-11708] #16330
@CachePut
evaluates incorrectly expressions for the different implementation of the same interface [SPR-11692] #16314- Form select tag "multiple" attribute not recognized [SPR-11678] #16301
- UrlResource.exists() does not properly detect JBoss vfszip resources [SPR-11676] #16299
- DefaultSubscriptionRegistry does not handle subscriptions in Ant-style [SPR-11657] #16280
- NPE in AbstractMessageSendingTemplate when headers are null and converter returns null [SPR-11653] #16276
- AnnotationReadingVisitorUtils.getMergedAnnotationAttributes() overrides values it should not [SPR-11649] #16272
- SUBSCRIBE response message should match the original message destination [SPR-11648] #16271
- Regression:
@ComponentScan
fails for AnnotationConfigWebApplicationContext [SPR-11647] #16270 - ResourceHttpRequestHandler not closing Resource's input stream [SPR-11644] #16267
@PropertySource
locations are being dropped in ConfigurationClassParser processPropertySource [SPR-11637] #16260- Servlet mocks are not reinjected into test instance between TestNG test methods [SPR-11626] #16249
- Adding a ChannelInterceptor suppresses default executor settings in the XML namespace [SPR-11623] #16246
- Unsafe fallback pointcut construction in AspectJExpressionPointcut [SPR-9335] #13973
📔 Documentation
4.0.3 Release
⭐ New Features
- ResizableByteArrayOutputStream and ByteArrayOutputStream capacities [SPR-11594] #16218
- Target Cache gets checked twice for every cache hit [SPR-11592] #16216
- MessageMethodArgumentResolver does not handle payload type and sub classes [SPR-11584] #16208
- Remove default use of SimpleAsyncTaskExecutor in WebSocketClient implementations [SPR-11580] #16204
- Add ApplicationEvents for WebSocket connection and disconnection [SPR-11578] #16202
- Support configuring WebSocket message buffer size [SPR-11575] #16199
- H2EmbeddedDatabaseConfigurer should set DB_CLOSE_ON_EXIT=false [SPR-11573] #16197
@ControllerAdvice
not detected from parent contexts (even though@Controller
is) [SPR-11570] #16194- Pass WebSocket session attributes in HandshakeInterceptor and expose them to MessageMapping methods [SPR-11566] #16190
- Introduce SQL script exception hierarchy [SPR-11564] #16188
- Refine BrokerAvailabilityEvent behavior in spring-messaging [SPR-11563] #16187
- Improve StAX<->SAX bridge [SPR-11549] #16174
- MVC handler method detection should ignore scopedTarget.x in favor of corresponding proxy bean [SPR-11548] #16173
- Optimize locking mechanism around storing flash attributes [SPR-11538] #16163
- relay-port type in xsd should be string [SPR-11537] #16162
- Improve exception message for failed property access in SpEL [SPR-11535] #16160
- Support receiving fragmented STOMP frames [SPR-11527] #16152
@PropertySource
ignoreResourceNotFound throws exception for unresolved placeholder values [SPR-11524] #16149- Treat empty log config refresh interval as infinite interval in Log4jWebConfigurer [SPR-11507] #16132
- Skip eager bean creation of ApplicationListener's if they are not type-compatible with the given event [SPR-11501] #16126
- Clarify the use of exception in the conversion API [SPR-11500] #16125
- Improve MockHttpServletRequest's compatibility with Servlet 3.1 [SPR-11492] #16117
- Jaxb2RootElementHttpMessageConverter doesn't allow for customizing Marshaller/Unmarshaller [SPR-11488] #16113
- Expose path-related request mapping settings in the MVC Java config [SPR-11486] #16111
- String method for PatternsRequestCondition#getMatchingCondition [SPR-11484] #16109
- Avoid unnecessary inspection of meta-annotations on Java annotations [SPR-11483] #16108
- CollectionToCollectionConverter.convert() improvement for untyped collections [SPR-11479] #16104
- Favor more locally declared composed annotations over inherited annotations in AnnotationUtils [SPR-11475] #16100
- MetaAnnotationUtils should support arbitrary levels of meta-annotations [SPR-11470] #16095
- AbstractMessageConverter.supportsMimeType() should facilitate more restrictive matching strategies [SPR-11463] #16089
- CompositeMessageConverter should allow MessageConverters to use different ContentTypeResolvers [SPR-11462] #16088
- DefaultContentTypeResolver should support String-based "contentType" header values [SPR-11461] #16087
- EntityManager should explicitly get closed for non-executed Query objects [SPR-11451] #16077
- AnnotationUtils.findAnnotation() should support arbitrary levels of meta-annotations [SPR-11448] #16074
- MockMvc needs to accept prepared URI with encoded URI path variables [SPR-11441] #16067
- Logs fill with unnecessary stack traces when using SockJS streaming transports [SPR-11438] #16064
- NumberUtils.convertNumberToTargetClass does not report overflow when converting BigInteger to Long [SPR-11434] #16060
- Improve configurability of EmbeddedDatabaseBuilder [SPR-11410] #16037
- Multi-message frames over STOMP. [SPR-11328] #15952
- Upgrade embedded ASM version to 5.0.1 [SPR-11239] #15864
- MethodInvokingFactoryBean not well-suited for non-factory methods [SPR-11196] #15822
- java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy exception when annotation config not found needs to specify what class is not found [SPR-10441] #15074
- Support multi-line SQL comments in ResourceDatabasePopulator and JdbcTestUtils [SPR-9531] #14165
- ServletContextResourceLoader performance problem: creates a lot of MalformedURLExceptions ("no protocol") in normal operation [SPR-8283] #12931
- ShallowEtagHeaderFilter should make use of specified content length [SPR-8271] #12919
🪲 Bug Fixes
- Referencing static field of class that extends Map in expression language causes class cast exception [SPR-11609] #16232
- ConversionService should remain capable of converting multidimensional array. [SPR-11608] #16231
- AbstractApplicationEventMulticaster can leak classes [SPR-11606] #16229
- Annotations on superclasses are detected by StandardAnnotationMetadata [SPR-11595] #16219
- Log Forging in DispatcherServlet via requestURI [SPR-11591] #16215
- BufferedImageHttpMessageConverter fails if JAI is installed [SPR-11581] #16205
- PayloadArgumentResolver does not honour Payload#required() [SPR-11577] #16201
- Support meta-annotation attribute overrides in ASM-based annotation processing [SPR-11574] #16198
- Custom HandshakeHandler not set when using particular xml configuration [SPR-11568] #16192
- Cache.get(key, type) doesn't work in case of null value found in cache [SPR-11567] #16191
- SQL Scripts with newline separators no longer work [SPR-11560] #16184
- Support Class meta-annotation attributes with ASM-based annotation processing [SPR-11557] #16181
- Connection to STOMP broker is retried in a tight loop if an AMQP port is specified [SPR-11554] #16178
- Providing unique names to prototype inner beans causes excessive memory and CPU use [SPR-11545] #16170
- Memory leak related to TCP connection management with use of STOMP broker relay [SPR-11531] #16156
- Autowiring unable to find generic dependency [SPR-11529] #16154
- Negative content-length causes NegativeArraySizeException when using SockJS on IE8 [SPR-11528] [#16153]...
4.0.2 Release
⭐ New Features
- Poor jackson parsing error message in MappingJackson2HttpMessageConverter [SPR-11603] #16226
- Add support for setting PropertyNamingStrategy in Jackson2ObjectMapperFactoryBean [SPR-11431] #16057
- Minor CompositeCacheManager revision [SPR-11427] #16053
- Allow access to HttpMethod in controller methods [SPR-11425] #16052
- Add status ResultMatcher to express status code ranges [SPR-11424] #16051
- MarshallingView should explicitly skip BindingResult when searching for a model object [SPR-11417] #16044
- Ignore container callback and marker interfaces for auto-proxy decisions [SPR-11416] #16043
- Consistently avoid close() call on Servlet OutputStream [SPR-11413] #16040
- Introduce verify() and reset() methods in AnnotationDrivenStaticEntityMockingControl [SPR-11395] #16022
- Performance degradation in evaluation of SpelExpression with access to Map [SPR-11388] #16015
- Custom headers are not sent in the stomp message [SPR-11387] #16014
- Multiple Converters from same source type to different Collection types not properly supported [SPR-11369] #15995
- Improve error reporting for issues related to
@Controller
types requiring AOP proxing [SPR-11281] #15905 - ShallowEtagHeaderFilter should not set ETags to non-cached resources [SPR-11110] #15736
- CustomizableThreadCreator could use AtomicInteger [SPR-11103] #15729
- HibernateInterceptor variant for Hibernate 4 [SPR-9028] #13667
🪲 Bug Fixes
- Memory leak in ConcurrentReferenceHashMap [SPR-11440] #16066
- No way to set virtual host in StompBrokerRelayMessageHandler [SPR-11433] #16059
- Objects with multi-threaded access should not lazily populate a hash field [SPR-11428] #16054
- Ensure server messages contain a destination matching that of the original subscription for user destinations [SPR-11423] #16050
- resolveFactoryMethodIfPossible should consider nonPublicAccessAllowed flag and SecurityManager scenario [SPR-11422] #16049
- Inclusion of 'overloaded' in equals() and hashCode() for MethodOverride breaks equals() in AbstractBeanDefinition [SPR-11420] #16047
- Update javadoc to conform to JDK8's styling [SPR-11412] #16039
- MarshallingView should not close response output stream [SPR-11411] #16038
- EhCacheCacheManager does not wrap runtime-registered caches with TransactionAwareCacheDecorator [SPR-11407] #16034
- Log caught exception in MappingJackson2HttpMessageConverter [SPR-11403] #16030
- HibernateTemplate's generic signatures break backwards compatibility at source level [SPR-11402] #16029
- aop:scoped-proxy may fail with LinkageError: loader attempted duplicate class definition for name [SPR-11398] #16025
- MvcUriComponentsBuilder does not expand path variables in controller-level
@RequestMapping
[SPR-11391] #16018 - PreparedStatement#getParameterMetaData() calls may trigger unwanted side effects [SPR-11386] #16013
- Fix off-by-one regression in AbstractMethodMockingControl [SPR-11385] #16012
- Potential ClassCastException in RequestContextListener when destroying the request object [SPR-11378] #16005
- Jaxb2RootElementHttpMessageConverter is susceptible to XXE vulnerability [SPR-11376] #16003
- StringIndexOutOfBoundsException in AbstractErrors for class-level JSR-303 validator [SPR-11374] #16001
- NPE if no registered MessageConverter supporting "application/json" MIME type [SPR-11370] #15996
- LiveBeansView generates invalid JSON on specific case [SPR-11366] #15992
- URLs containing %2F (forward slash) are not mapped correctly to
@RequestMapping
methods [SPR-11101] #15727 - Velocity springFormCheckboxes macro does not check preselected items correctly [SPR-10837] #15463
- Method injection causes memory leak [SPR-10785] #15411
📔 Documentation
3.2.8 Release
⭐ New Features
- Improve error reporting for issues related to
@Controller
types requiring AOP proxing [SPR-11281] #15905 - Consistently avoid close() call on Servlet OutputStream [SPR-11413] #16040
- MarshallingView should explicitly skip BindingResult when searching for a model object [SPR-11417] #16044
- Minor CompositeCacheManager revision [SPR-11427] #16053
🪲 Bug Fixes
- Method injection causes memory leak [SPR-10785] #15411
- Velocity springFormCheckboxes macro does not check preselected items correctly [SPR-10837] #15463
- URLs containing %2F (forward slash) are not mapped correctly to
@RequestMapping
methods [SPR-11101] #15727 - LiveBeansView generates invalid JSON on specific case [SPR-11366] #15992
- StringIndexOutOfBoundsException in AbstractErrors for class-level JSR-303 validator [SPR-11374] #16001
- Jaxb2RootElementHttpMessageConverter is susceptible to XXE vulnerability [SPR-11376] #16003
- Potential ClassCastException in RequestContextListener when destroying the request object [SPR-11378] #16005
- Fix off-by-one regression in AbstractMethodMockingControl [SPR-11385] #16012
- PreparedStatement#getParameterMetaData() calls may trigger unwanted side effects [SPR-11386] #16013
- aop:scoped-proxy may fail with LinkageError: loader attempted duplicate class definition for name [SPR-11398] #16025
- EhCacheCacheManager does not wrap runtime-registered caches with TransactionAwareCacheDecorator [SPR-11407] #16034
- MarshallingView should not close response output stream [SPR-11411] #16038
- Inclusion of 'overloaded' in equals() and hashCode() for MethodOverride breaks equals() in AbstractBeanDefinition [SPR-11420] #16047
- resolveFactoryMethodIfPossible should consider nonPublicAccessAllowed flag and SecurityManager scenario [SPR-11422] #16049
- Objects with multi-threaded access should not lazily populate a hash field [SPR-11428] #16054
- Memory leak in ConcurrentReferenceHashMap [SPR-11440] #16066
📔 Documentation
- Broken link into documentation section 21.5.3 [SPR-11404] #16031
4.0.1 Release
⭐ New Features
@RestController
should accept a bean name value [SPR-11360] #15986- Compatibility with JOpt 4.6 [SPR-11359] #15985
- HibernateJpaVendorAdapter should use new interface when on Hibernate 4.3 [SPR-11358] #15983
- Revisit need for Introspector.flushFromCaches call in CachedIntrospectionResults [SPR-11356] #15981
@RequestPart
(...) MultipartFile[] does not work (List<MultipartFile works) [SPR-11353] #15978- Provide alternative RestTemplate constructor to avoid default MessageConverter creation [SPR-11351] #15976
- Add Missing Constructors Back to MessageHandlingException [SPR-11345] #15969
- Unnecessary class loading in AspectJ RuntimeTestWalker [SPR-11344] #15968
- Reduce footprint due to RootBeanDefinition [SPR-11343] #15967
- Inconsistent serializable RemoteInvocation(Result) classes [SPR-11337] #15961
- Bootstrapping the EntityManagerFactory should log the name of the persistence unit being used [SPR-11333] #15957
- Include TestContext in log message when starting a new transaction in TransactionalTestExecutionListener [SPR-11323] #15947
- Add control of what HTTP Request method AbstractFileResolvingResource methods exists, lastModified and lastModified uses on http url resources [SPR-11320] #15944
- Provide a mechanism for adding ApplicationContextInitializers to DispatcherServlet's ApplicationContext [SPR-11314] #15938
- Optimize lookup of field errors in AbstractBindingResult [SPR-11304] #15928
- Make conversion framework extensible [SPR-11303] #15927
- Encode user name in user-specific message destinations. [SPR-11302] #15926
- Add patch() to MockMvcRequestBuilders [SPR-11299] #15923
- Re-consider including HibernateTemplate and related classes for Hibernate 4 [SPR-11291] #15915
- Upgrade Tiles2 TilesConfigurer class to Tiles 2.2.2 [SPR-11285] #15909
- ThreadPoolTaskExecutor Should Implement AsyncListenableTaskExecutor [SPR-11282] #15906
- Allow ObjectMapper to be modified within MappingJackson2MessageConverter [SPR-11279] #15903
- GenericMessage unnecessarily copies message headers before passing to MessageHeaders [SPR-11268] #15893
- better method identification in AnnotationTransactionAttributeSource logging [SPR-11267] #15892
- MappingJackson2(Http)MessageConverter should be more verbose in canRead/canWrite checks (on Jackson 2.3) [SPR-11261] #15886
- Add potentially existing orm.xml file to default persistence unit when packages to scan is used [SPR-11260] #15885
- Add Converter implementations that convert legacy Date instances into JDK 8 date/time types [SPR-11259] #15884
- AntPathMatcher creates many temporary objects [SPR-11258] #15883
- Allow configuring RequestMappingHandlerMapping in mvc:annotation-driven [SPR-11253] #15878
- Private constant HttpHeaders.UPGARDE misspelled [SPR-11241] #15866
- HibernateJpaVendorAdapter causes Hibernate 4.3 to produce deprecation warnings [SPR-11240] #15865
- Spring4 MVC Unit test does not compile [SPR-11238] #15863
- Support for JSR-356 on WildFly 8 / Undertow [SPR-11237] #15862
- orm.xml should be recognized by default if using JPA [SPR-11234] #15859
- Allow setting principal on connect [SPR-11228] #15853
- Upgrade to CGLIB 3.1 and Objenesis 2.1 [SPR-11226] #15851
- Provide 'with implementationType' overloads on ResolvableType [SPR-11218] #15843
- Spring formatting with Formatting from String to String and spring:eval does not work [SPR-11215] #15840
- No stack trace on SockJS HTTP transport failure to write to the response [SPR-11201] #15827
- Allow configuring a PathMatcher for use in MappedInterceptor [SPR-11197] #15823
- Support for
@Valid
in@MessageMapping
annotated methods [SPR-11185] #15811 - Allow easier customization of MessageConverters with
@EnableWebSocketMessageBroker
and XML namespace [SPR-11184] #15810 - Consider improvements to SockJS message cache [SPR-11183] #15809
- client-side stomp authentication headers are passed to the message broker [SPR-11154] #15781
- avoid dependency on reactor-tcp when using a stomp broker relay [SPR-11153] #15780
- Allow
@Controller
methods to produce a response with no body and custom headers by returning an HttpHeaders instance [SPR-11129] #15755 - Auto-registration of modules (in particular JSR-310 and Joda-Time support) in Jackson's ObjectMapper [SPR-11040] #15668
- Provide access to SimpleTriggerFactoryBean property startTime [SPR-10940] #15568
- tx:annotation-driven and cache:annotation-driven should have order defined as a token [SPR-10886] #15514
- Expose path-related request mapping settings in the MVC XML namespace [SPR-10163] #14796
- CronTriggerFactoryBean doesn't allow calendar name and description to be specified [SPR-9771] #14405
- Improve the performance of BeanInfo lookups in CachedIntrospectionResults [SPR-9014] #13653
- Be able to define tx:annotationdriven order attribute as a ref [SPR-7342] #12001
- JMSTemplate setDeliveryPersistent(boolean deliveryPersistent) javadoc incorrect [SPR-3983] #8663
🪲 Bug Fixes
- CachedIntrospectionResults caching jar entries and creating big pressure on GC [SPR-11818] #16438
- CompoundClassLoader.loadClass is trying to load some framework class and comsuming all web container threads. [SPR-11499] #16124
- Upgrading spring from 3.2 to 4 - Issue with generics (extends) [SPR-11382] #16009
- SchedulerAccessor 'globalJobListeners' and 'globalTriggerListeners' not working with 2.0.x and 2.1.x [SPR-11362] #15988
- BeanWrapper fails in case of read/write method mismatch (e.g. EhCacheFactoryBean.setMemoryStoreEvictionPolicy) [SPR-11361] #15987
- AbstractAnnotationConfigDispatcherServletInitializer does not allow consolidating all configuration into the "root" context [SPR-11357] #15982
- Regression from 3.2.x for FormattingConversionService.addFormatterForFieldType [SPR-11354] #15979
- SpEL Projection Regression [SPR-11348] [#15972](https://github.c...
3.2.7 Release
⭐ New Features
- JMSTemplate setDeliveryPersistent(boolean deliveryPersistent) javadoc incorrect [SPR-3983] #8663
- Improve the performance of BeanInfo lookups in CachedIntrospectionResults [SPR-9014] #13653
- CronTriggerFactoryBean doesn't allow calendar name and description to be specified [SPR-9771] #14405
- Provide access to SimpleTriggerFactoryBean property startTime [SPR-10940] #15568
- better method identification in AnnotationTransactionAttributeSource logging [SPR-11267] #15892
- Add patch() to MockMvcRequestBuilders [SPR-11299] #15923
- Optimize lookup of field errors in AbstractBindingResult [SPR-11304] #15928
- Provide a mechanism for adding ApplicationContextInitializers to DispatcherServlet's ApplicationContext [SPR-11314] #15938
- Add control of what HTTP Request method AbstractFileResolvingResource methods exists, lastModified and lastModified uses on http url resources [SPR-11320] #15944
- Bootstrapping the EntityManagerFactory should log the name of the persistence unit being used [SPR-11333] #15957
- Reduce footprint due to RootBeanDefinition [SPR-11343] #15967
- Unnecessary class loading in AspectJ RuntimeTestWalker [SPR-11344] #15968
- Provide alternative RestTemplate constructor to avoid default MessageConverter creation [SPR-11351] #15976
- Compatibility with JOpt 4.6 [SPR-11359] #15985
🪲 Bug Fixes
- Fix
@Bean
meta-annotation detection when using ASM [SPR-10488] #15121 - theme resolution fails with "IllegalArgumentException: Basename must not be empty" when an empty theme value is provided via request url [SPR-11128] #15754
- context:component-scan element says error in the mvc-cofig.xml [SPR-11221] #15846
- Backward compatibility of BeanUtils.copyProperties broken for copying wrapped types to primitive types (and vice versa) on 3.2.6 and 4.0.0 [SPR-11231] #15856
- Regression: InjectionMetadata cache needs to handle different bean classes per bean name [SPR-11246] #15871
- XMLEventStreamWriter fails to handle writeEmptyElement() followed by writeAttribute() [SPR-11254] #15879
- EhCacheFactoryBean should not call set(Sampled)StatisticsEnabled on EhCache 2.7/2.8 [SPR-11265] #15890
@Async
with cglib based proxy causes memory leak in heap [SPR-11275] #15899@Async
with cglib based proxy causes memory leak in permgen [SPR-11276] #15900- Full Quartz 2.2 compatibility, including LocalDataSourceJobStore [SPR-11284] #15908
- StandardEnvironment's system environment access produces warning with stacktrace on WebSphere [SPR-11297] #15921
- Bad type comparison in ReflectionHelper.getTypeDifferenceWeight(List paramTypes, List argTypes) [SPR-11306] #15930
- ServletWebRequest.checkNotModified() methods should treat HEAD identically to GET [SPR-11317] #15941
- Wrong assert in AspectJAwareAdvisorAutoProxyCreator.setAspectJAdvisorFactory() [SPR-11330] #15954
- ServletTestExecutionListener is not enabled by default in abstract base test classes [SPR-11340] #15964
- PlaceholderConfigurerSupport.doProcessProperties() loses stack trace on exception [SPR-11346] #15970
- Handle NoClassDefFoundError for TestExecutionListeners consistently in the TestContext framework [SPR-11347] #15971
- AbstractAnnotationConfigDispatcherServletInitializer does not allow consolidating all configuration into the "root" context [SPR-11357] #15982
- BeanWrapper fails in case of read/write method mismatch (e.g. EhCacheFactoryBean.setMemoryStoreEvictionPolicy) [SPR-11361] #15987
- SchedulerAccessor 'globalJobListeners' and 'globalTriggerListeners' not working with 2.0.x and 2.1.x [SPR-11362] #15988
- CompoundClassLoader.loadClass is trying to load some framework class and comsuming all web container threads. [SPR-11499] #16124
- StatementCreatorUtils introduces java 1.6 dependency [SPR-11349] #15974
- NoClassDefFoundError with Spring 3.2.7.BUILD-SNAPSHOT on WebSphere 6.1 [SPR-11341] #15965
- Downgrade accidental use of Java 1.6 APIs [SPR-11321] #15945
- spring-jdbc-3.2.6.RELEASE doesn't support JDK 5. [SPR-11313] #15937
@Enable
registrars invoked with subclass for annotation placed on superclass (3.2.x) [SPR-11251] #15876
4.0 GA Release
⭐ New Features
- Lock error is not translated to PessimisticLockingFailureException or subclass when using JPA (Hibernate) [SPR-11670] #16293
- A GuavaCache implementation of org.springframework.cache.Cache [SPR-11216] #15841
- Rename
@PathVariable
to@DestinationVariable
in spring-messaging [SPR-11208] #15833 - EhCacheManagerFactoryBean should share per cacheManagerName and only call shutdown if it originally created its CacheManager [SPR-11178] #15804
- Minor issue with fix for CVE 2010-1622 [SPR-11098] #15724
- Map "Foreign key constraint violation occurred" Sybase error code to DataIntegrityViolationException [SPR-11097] #15723
- RequiredAnnotationBeanPostProcessor should not kick in for factory-bean definitions [SPR-10458] #15091
- Allow for ignoreResourceNotFound on
@PropertySource
[SPR-10325] #14959 - Expression evaluator should accept raw collection value for parameterized method argument [SPR-7831] #12487
- Sort the scanned entity classes when creating an Hibernate SessionFactory [SPR-7742] #12398
🪲 Bug Fixes
- Recently changes of GenericTypeAwarePropertyDescriptor breaks BeanUtils.copyProperties() [SPR-11209] #15834
- FactoryBean bean type detection can causes fatal early instantiation [SPR-11202] #15828
- XStreamMarshaller doesn't set the converterRegistry field with XStream 1.4.5 [SPR-11147] #15774
- ServletTestExecutionListener breaks old code [SPR-11144] #15771
- Images in docbook generated PDF are too large [SPR-11143] #15769
- Fix tests related to java.beans.BeanInfo changes in JDK8-b117 [SPR-11139] #15765
- Dependency Injection issue when using ManagedMap or ManagedList in BeanDefinitionParser [SPR-11131] #15757
- Cannot autowire qualified scoped-proxy
@Bean
definitions [SPR-11116] #15742 - Type resolution fails for uninitialized factory-method declaration [SPR-11112] #15738
- "CglibAopProxy: Unable to proxy method" WARN when bean class contains static final method [SPR-11107] #15733
- performancedrop due to repeated JDBC 3.0 getParameterType calls in setNull in StatementCreatorUtils [SPR-11100] #15726
- If the !profile selector is used the other profiles can be ignored in [SPR-11093] #15719
- ClassPathScanningCandidateComponentProvider.findCandidateComponents fails on private meta-attributes [SPR-11091] #15717
- Use StoredProcedure to call sp, if not set the rowmapper for out parameter which type is cursor, will throw null pointer exception [SPR-11076] #15702
- MBeanExporter/MBeanRegistrationSupport lack synchronization [SPR-11002] #15630
- Remove integer conversion in JmsListenerContainerParser [SPR-10986] #15614
@Qualifier
Change of Behavior 4.0 Vs 3.x with Qualified Bean in Parent Context [SPR-10966] #15594- Security vulnerabilities in Spring v2.5.6 and v3.2.4 [SPR-10912] #15540
- In spring MVC portlet,
@resourceMapping
doesn't work. [SPR-10791] #15417 - Cannot override singleton with scoped proxy [SPR-10744] #15370
- StackOverflowError when expression calls method which is a Collection of itself [SPR-9735] #14369
- Java config FactoryBean proxy causes class loader leak [SPR-9274] #13912
📔 Documentation
- Document MVC timezone support [SPR-11203] #15829
- Document scripting updates (JRuby 1.5, Groovy 1.8) [SPR-11200] #15826
- Document
@Description
[SPR-11194] #15820 - Document Servlet 3.0 in "Initial web configuration" [SPR-11190] #15816
- Remove EBR details from docs [SPR-11189] #15815
- Document
@Conditional
[SPR-11188] #15814 - Document SimpleKeyGenerator default in migration guide [SPR-11187] #15813
- Document AsyncRestTemplate [SPR-11182] #15808
- update/remove parts of "Integrating with other web frameworks" section [SPR-11181] #15807
- Check docs for references to Tiles v1 [SPR-11180] #15806
- update interceptors documentation [SPR-11175] #15801
- document new deprecations in the migration guide [SPR-11174] #15800
- mention updates in resttemplate documentation [SPR-11173] #15799
- Mention suffix pattern match in contentnegotiationmanager doc [SPR-11172] #15798
- Delete "migrating to spring 3.x" sections [SPR-11171] #15797
- document Environment and PropertySource abstractions [SPR-11170] #15796
- Document Bean definition profiles [SPR-11169] #15795
- Remove references to DTD from docs [SPR-11166] #15792
- Document the -bom [SPR-11163] #15789
- Remove all references to Amazon S3 repo [SPR-11162] #15788
- Mention Gradle in the docs [SPR-11161] #15787
- Remove EBR section from docs [SPR-11160] #15786
- Remove community download section from docs [SPR-11159] #15785
- Check references to struts [SPR-11157] #15783
- Update figure 1 to include messaging module [SPR-11155] #15782
- Add a section with all Java SE and Java EE support info [SPR-11151] #15778
- Document
@ControllerAdvice
[SPR-11149] #15776 - Update and/or migrate "what's new in spring 3" "migrating to..." sections [SPR-11148] #15775
- What's New in 4.0 section in reference documentation [SPR-11120] #15746
- Document meta-annotation support in the TestContext framework [SPR-11109] #15735
- Remove all references to ibatis [SPR-11156] #15469
- Update the release process regarding change log generation [SPR-9740] #14374
3.2.6 Release
⭐ New Features
- Expression evaluator should accept raw collection value for parameterized method argument [SPR-7831] #12487
- Map "Foreign key constraint violation occurred" Sybase error code to DataIntegrityViolationException [SPR-11097] #15723
- Minor issue with fix for CVE 2010-1622 [SPR-11098] #15724
- Add Maven 'bill-of-materials' project for 3.2.x [SPR-11204] #15512
🪲 Bug Fixes
- In spring MVC portlet,
@resourceMapping
doesn't work. [SPR-10791] #15417 - Security vulnerabilities in Spring v2.5.6 and v3.2.4 [SPR-10912] #15540
- Remove integer conversion in JmsListenerContainerParser [SPR-10986] #15614
- MBeanExporter/MBeanRegistrationSupport lack synchronization [SPR-11002] #15630
- Use StoredProcedure to call sp, if not set the rowmapper for out parameter which type is cursor, will throw null pointer exception [SPR-11076] #15702
- ClassPathScanningCandidateComponentProvider.findCandidateComponents fails on private meta-attributes [SPR-11091] #15717
- If the !profile selector is used the other profiles can be ignored in [SPR-11093] #15719
- performancedrop due to repeated JDBC 3.0 getParameterType calls in setNull in StatementCreatorUtils [SPR-11100] #15726
- "CglibAopProxy: Unable to proxy method" WARN when bean class contains static final method [SPR-11107] #15733
- Type resolution fails for uninitialized factory-method declaration [SPR-11112] #15738
- Cannot autowire qualified scoped-proxy
@Bean
definitions [SPR-11116] #15742 - Dependency Injection issue when using ManagedMap or ManagedList in BeanDefinitionParser [SPR-11131] #15757
- Fix tests related to java.beans.BeanInfo changes in JDK8-b117 [SPR-11139] #15765
- ServletTestExecutionListener breaks old code [SPR-11144] #15771
- Recently changes of GenericTypeAwarePropertyDescriptor breaks BeanUtils.copyProperties() [SPR-11209] #15834
- ReflectivePropertyAccessor should not consider "is" methods with non boolean returns [SPR-11142] #15768
- Support multiple comma-separated values in X-Forwarded-Host header [SPR-11140] #15766
- EhCacheFactoryBean.afterPropertiesSet should be synchronized [SPR-11132] #15758
- Spring caching: combining multiple
@Cacheable
within@Caching
annotation doesn't work [SPR-11124] #15750 - EhCacheFactoryBean fails when statistics are enabled [SPR-11080] #15706
4.0 RC2 Release
⭐ New Features
- Support placeholder in EnableMBeanExport [SPR-11105] #15731
- Upgrade Jetty to version 9.1.0 GA [SPR-11099] #15725
- Add support for default prefix in
@SendTo
and@SendToUser
annotations [SPR-11085] #15711 - Allow InstrumentationSavingAgent for usage with Attach API [SPR-11083] #15709
- Improve process of subscribing to a user/session-specific STOMP destination [SPR-11077] #15703
- Add BeanFactory.getBeanNamesWithAnnotation(Class<?>, boolean, boolean) for parity with getBeansOfType(...) [SPR-11069] #15696
- Support JCA 1.7 [SPR-11067] #15694
- Replace SubscribableChannel with AbstractSubscribableChannel in WebSocketMessageBrokerConfigurationSupport [SPR-11065] #15692
- Provide XML Namespace for Configuring WebSocket and STOMP [SPR-11063] #15690
- Add org.springframework.cache.Cache.get(key, type) [SPR-11061] #15688
- Impossible to customise Hibernate RegionFactory [SPR-11056] #15683
- Support meta-annotation attribute overrides in the TestContext framework [SPR-11038] #15666
- ConfigurationClass.validate() should allow for overloading in general or not at all [SPR-11025] #15653
- Migrate from docbook to asciidoctor [SPR-10960] #15588
@EnableTransactionManagement
and co should also get detected on superclasses [SPR-10864] #15491- Improve behavior in accidental error cases for AOP, JavaConfig and too broad pointcuts [SPR-10561] #15191
- Support BigDecimals with SpEL [SPR-9164] #13802
- Improve failure mode when depends-on cycles exist [SPR-7966] #12621
🪲 Bug Fixes
- Fix casing in spring mvc namespace attributes "enableMatrixVariables" and "ignoreDefaultModelOnRedirect" [SPR-11136] #15762
- IllegalStateException prevents STOMP/WebSocket app from starting on Wildfly [SPR-11111] #15737
- AnnotationUtils fails to retrieve attribute values from non-public annotations [SPR-11104] #15730
- Corrupted WebSocket messages by multi-threaded publishing to external clients [SPR-11102] #15728
- Connection to STOMP broker closed after a few successful messages are read [SPR-11088] #15714
@PropertySources
fails on JDK 7 due to@Repeatable
[SPR-11086] #15712- Websocket connection fails with /websocket Stomp Endpoint [SPR-11058] #15685
- FormTag generates hidden fields from RequestDataValueProcessor.getExtraHiddenFields(...) without container, resulting in invalid xhtml [SPR-10926] #15554
- MockMvc can't be test under multiple threads. [SPR-10838] #15464
- SpEL: OpEQ should use equals() [SPR-9194] #13832
📔 Documentation
3.2.5 Release
⭐ New Features
- Disable the processing of external entities in SourceHttpMessageConverter by default [SPR-11078] #15704
- Avoid unnecessary char[] allocation in NamedParameterUtils [SPR-11042] #15670
- Spring doesn't parse jndi variables default values to match the expected-type [SPR-11039] #15667
- Methods in AnnotationConfigUtils.processCommonDefinitionAnnotations(…) should be public [SPR-11032] #15660
- PropertyOrFieldReference suffers from potential NullPointerException [SPR-11031] #15659
- ClassPathBeanDefinitionScanner INFO logging on JSR 330 [SPR-10974] #15602
- Make createRequestMappingInfo in RequestMappingHandlerMapping protected [SPR-10950] #15578
- Add XStream CatchAllConverter [SPR-10821] #15447
- Order of values in
@PropertySource
annotation depends on name attribute [SPR-10820] #15446
🪲 Bug Fixes
- Cannot override singleton with scoped proxy [SPR-10744] #15370
- ClasspathXmlApplicationContext does not inherit/merge parent context environment [SPR-11068] #15695
- MockHttpServletRequestBuilder not handling parameter without value [SPR-11043] #15671
@Autowired
setter randomly called twice or not called at all when two beans of the same class [SPR-11027] #15655- Bean definitions using indexed constructor arguments are not usable for
@Autowired
resolution [SPR-11019] #15647 - Unecessary logging about setNull with Oracle driver [SPR-11017] #15645
- Cannot override initializer of
@ContextConfiguration
when using@ContextHierarchy
[SPR-10997] #15625 - TypeConverterDelegate standard conversion changes single element array to a class instance when trying to convert to Object [SPR-10996] #15624
- Spring cannot find setter if subclass overrides getter narrowing return type [SPR-10995] #15623
@Bean
overriding does not pick up metadata from most specific method [SPR-10992] #15620- JavaConfig Bean overriding with addition [SPR-10988] #15616
- Mallforme Content-Type is not translated to 415 status code [SPR-10982] #15610
- LiteralExpression.getValue doesn't propagate 'EvaluationContext' to 'ExpressionUtils' for conversion [SPR-10953] #15581
- AbstractApplicationEventMulticaster throws NPE when ApplicationEvent's source is null [SPR-10945] #15573
- Invoking RedirectView.render from within a filter throws null pointer exception [SPR-10937] #15565
@Resource
is always marked as shareable [SPR-10931] #15559- Fix 'problem locating method' SpEL error message [SPR-10928] #15556
- Typo on spring mvc reference docs : 'ContentNeogitatingViewResolver' [SPR-10927] #15555
- Duplicate scan of
@Import
annotations when inherited from another annotation [SPR-10918] #15546 - ArrayStoreException scanning subclassed enum annotation array with multiple values [SPR-10914] #15542
- Ehcache with RMI replication bug [SPR-10904] #15532
- Wrong translation of MS SQL Server RAISERROR [SPR-10902] #15530
- Memory Leak in AbstractBeanFactory, alreadyCreated HashSet not cleaned on failure in doGetBean [SPR-10896] #15524
- Abstract method mocking prints wrong call count in exception [SPR-10885] #15513
- Race condition in org.springframework.expression.spel.ast.MethodReference [SPR-10884] #15511
- Async DeferredResult OpenSessionInViewFilter [SPR-10874] #15501
- NullPointerException thrown by ExtendedBeanInfo with IBM J9 VM [SPR-10862] #15489
- AnnotationConfigWebApplicationContext.register cannot be called multiple times [SPR-10852] #15479
- NPE in RestTemplate with Resource implementation where getFilename() returns null [SPR-10848] #15475
- spring-jms 3.0.4 introduces a change that breaks using JMSTemplate (and for that matter any JMS resource) with Oracle AQ when JMS Session are used in SESSION_TRANSACTED mode. [SPR-10829] #15455
- JaxB2Marshaller passes null InputSource to SaxSource constructor under certain condition [SPR-10828] #15454
- GenericTypeResolver does not resolve the correct parameter type when bound type is also ParameterizedType [SPR-10819] #15445
- MappingJackson2HttpMessageConverter and MappingJacksonHttpMessageConverter should use configured JSON prefix instead of hardcoded value. [SPR-10817] #15443
- MemoryLeak in AntPathMatcher during caching AntPathStringMatcher instances [SPR-10803] #15429
- BeanDefinitions registered using BeanDefinitionRegistry not always eligible for autowiring when using
@Qualifier
[SPR-10736] #15364 - Relax JavaBean rules for SpEL property access [SPR-10716] #15344
- SimpleJdbcCall: Function return type (REF CURSOR) should be resolved properly. [SPR-10606] #15235
- SpEL fails if class.name and name is evaluated in the same context [SPR-10486] #15119
- SPEL and Enum variable resolution using wrong cachedExecutor [SPR-10452] #15085
- Advisor silently skipped if it is currently in creation [SPR-10430] #15063
- Return type prediction for generic factory method fails if type conversion of method arguments is necessary [SPR-10411] #15044
- MethodResolver results are cached in SpEL expressions, so changing the context at evaluation time has no effect [SPR-9495] #14129
📔 Documentation
- Elvis operator will return "Nikola Tesla" and not "Mike Tesla" in ref docs [SPR-10850] #15477