Skip to content

Releases: spring-projects/spring-framework

3.2.10 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

  • Code snippet for many JDBC methods are showing wrong arguments. [SPR-11945] #16562
  • Latest documentation does not state "application" as scope for beans [SPR-11944] #16561
  • Dead link to "MVC application step-by-step" guide [SPR-11935] #16552
  • Bad reference to HttpClient homepage [SPR-11853] #16472

4.0.5 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

17 Jan 15:45
Compare
Choose a tag to compare

⭐ 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

4.0.4 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

  • Update documentation with example of single ApplicationContext per webapp [SPR-11703] #16325
  • [doc] Document message broker related events published [SPR-11672] #16295
  • Use unconstrained quotes instead of backticks in the reference manual [SPR-11650] #16273

4.0.3 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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]...
Read more

4.0.2 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

  • Broken link into documentation section 21.5.3 [SPR-11404] #16031
  • Apache HttpComponents 4.3 required at runtime but not listed in migration guide [SPR-11383] #16010

3.2.8 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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...
Read more

3.2.7 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ 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