Skip to content

Releases: spring-projects/spring-framework

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

4.0 GA Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

17 Jan 15:45
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:34
Compare
Choose a tag to compare

⭐ 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

  • Polish asciidoctor [SPR-11096] #15722
  • Error in docs, part 6.5.5 Configuring a ConversionService [SPR-10802] #15428

3.2.5 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ 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

4.0 RC1 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • Support class-level mappings via @MessageMapping or @SubscribeEvent [SPR-11024] #15652
  • ScriptExecutor for JSR-223 [SPR-11007] #15635
  • Update json-path dependency to 0.9.0 [SPR-10990] #15618
  • Add support for resolving message header based arguments [SPR-10985] #15613
  • Introduce ResolvableType Class [SPR-10973] #15601
  • Provide option to configure "host" header in CONNECT frames to STOMP message brokers [SPR-10955] #15583
  • Support @PathVariable in annotated message handling methods [SPR-10949] #15577
  • SpEL: Make EvaluationException more informative with Expression [SPR-10938] #15566
  • Add "ignoreResourceNotFound" attribute to the @PropertySource [SPR-10932] #15560
  • Add IssueManagement declaration to POMs [SPR-10929] #15557
  • PersistenceExceptionTranslationPostProcessor.setBeanFactory(BeanFactory) causes unwanted early initialization [SPR-10894] #15522
  • Potential out-of-memory in AbstractSockJsService [SPR-10893] #15521
  • Validate if body is allowed in StompMessageConverter for the given command [SPR-10890] #15518
  • Provide support for using multiple MessageConverters depending on the Content-Type of a STOMP message [SPR-10889] #15517
  • Use ListenableFuture as the return value in WebSocketClient methods [SPR-10888] #15516
  • Make conversion framework extensible for non-Java classes [SPR-10887] #15515
  • ThreadPoolTaskScheduler setPoolSize() unable to change the pool size at runtime [SPR-10883] #15510
  • oxm:jibx-marshaller lacks support for "target-package" annotation [SPR-10882] #15509
  • Switch to Jetty's @WebSocket (from WebSocketListener) [SPR-10877] #15504
  • Add STOMP heartbeat support [SPR-10845] #15472
  • Add support for extensions during WebSocket handshake [SPR-10843] #15470
  • Compatibility problems with Hibernate 4.3.0.Beta1 and newer [SPR-10839] #15465
  • Hibernate 4 Multi Tenancy Feature Support [SPR-10823] #15449
  • Enhance Stomp support to handle frames with NULL octets in the body [SPR-10818] #15444
  • Provide support for pattern matching in MockMvcResultMatchers.redirectedUrl() [SPR-10789] #15415
  • Use Tomcat 8's new instrumentable WebappClassLoader [SPR-10788] #15414
  • add support for MockRestServiceServer to verify that a header does not exist [SPR-10771] #15397
  • Add ability to create proxy around classes that has no default constructor [SPR-10594] #15223
  • FilterType enum should have ASPECTJ, REGEX constants for AspectJTypeFilter, RegexPatternTypeFilter [SPR-10593] #15222
  • RestTemplate does not support IPv6 raw address (as opposed to hostname) [SPR-10539] #15169
  • MVC DispatcherServlet throw exception in noHandlerFound [SPR-10481] #15114
  • enhance Jackson2ObjectMapperFactoryBean to allow setting of (De)SerializerModifiers [SPR-10429] #15062
  • Off by one error in StringUtils.parseLocaleString [SPR-10364] #14996
  • Allow @ControllerAdvice to be cofigured with a join point to target a subset of controller [SPR-10222] #14855
  • ShallowEtagHeaderFilter should deal with the If-Match HTTP Header [SPR-10164] #14797
  • Autowiring of generic types [SPR-9965] #14599
  • Provide mechanism for creating links to controllers and controller methods [SPR-8826] #13468
  • Add @PropertySources annotation and support ignoreResourceNotFound [SPR-8371] #13018
  • Support Servlet 3.1 (JSR-340) [SPR-8193] #12842
  • Provide meta-annotation support for test-related annotations [SPR-7827] #12483
  • Convert TestContext to interface and introduce default implementation [SPR-7692] #12348
  • Migrate Grails BeanBuilder into Spring Core [SPR-7123] #11783
  • Create CGLIB proxy instances honoring tags [SPR-3150] #7836
  • Spring i18n needs TimeZone resolution as well as Locale resolution. [SPR-1528] #6227

🪲 Bug Fixes

  • HttpComponentsClientHttpRequestFactory method signature changes prevent user code from supporting Spring 3 and Spring 4 simultaneously [SPR-11053] #15680
  • GenericTypeResolver.resolveTypeArguments(…) returns Object for raw types [SPR-11052] #15679
  • Spring web depends on a beta release of Apache HTTP Client [SPR-11050] #15677
  • NPE in MatchAlwaysTransactionAttributeSource [SPR-11048] #15675
  • Unable to autowire concrete classes when java config methods return interface [SPR-11046] #15673
  • ResolvableType can throw NPE when resolving Generic Arrays [SPR-11044] #15672
  • NPE in ResolvableType.hasUnresolvableGenerics [SPR-11034] #15662
  • Potential NPE on result of GenericTypeResolver.resolveTypeArguments [SPR-11030] #15658
  • groovy-all should not be a mandatory dependency [SPR-11028] #15656
  • "Illegal instant due to time zone offset transition" when binding with LocalDate (joda) in Controller handler [SPR-11014] #15642
  • TypeDescriptor can no longer be programatically created with null generics [SPR-11006] #15634
  • Autowiring of types narrows with generics does not work [SPR-11004] #15632
  • Generic autowiring should support wiring of components with unresolved type variables [SPR-10993] #15621
  • Regression with detecting nested components [SPR-10970] #15598
  • HttpInvokerClientInterceptor.convertHttpInvokerAccessException implementation throws the RemoteAccessException instead of return it [SPR-10965] #15593
  • Keep "cookie_needed" property in SockJS service enabled by default [SPR-10939] #15567
  • Server sends SEND stomp frames back to the client instead of MESSAGE frames [SPR-10930] #15558
  • getSockJsPath() method in org.springframework.web.socket.sockjs.support.AbstractSockJsService returns wrong path [SPR-10923] #15551
  • RequestMappingHandlerAdapter.createDataBinderFactory has a return type of ServletRequestDataBinderFactory [SPR-10920] #15548
  • @RestController causing errors [SPR-10905] [#15533](https://github.com/spring-projects/spring-framework/issues/...
Read more

4.0 M3 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • Can @Profile be @Documented [SPR-10967] #15595
  • Add support for sending Ping and Pong WebSocket messages as well as for handling incoming Pong messages [SPR-10876] #15503
  • Implement ChannelInterceptor-like feature for SockJS/WebSocket/STOMP messages [SPR-10866] #15493
  • Add client and server-side WebSocket container configuration support [SPR-10844] #15471
  • MockMvcBuilders.standaloneSetup() ignores controller path mapping URIs' placeholders [SPR-10825] #15451
  • Untranslated Hibernate exception [SPR-10815] #15441
  • Add @RestController to stereotype a controller that is going to be used for @ResponseBody rendering [SPR-10814] #15440
  • Stereotype @Profiles not merged [SPR-10812] #15438
  • Make it possible to configure serialization inclusion for Jackson ObjectMapper [SPR-10810] #15436
  • Make the use of JSON library in the SockJS service configurable [SPR-10800] #15426
  • Add support for discovering JPA 2.1 @Converter during scanning [SPR-10799] #15425
  • Allow headers to be set on WebSocketConnectionManager [SPR-10796] #15422
  • Add LocalContainerEntityManagerFactoryBean missing methods to easily replace elements in persistence.xml [SPR-10764] #15390
  • Request streaming for HttpComponentsClientHttpRequestFactory [SPR-10728] #15356
  • Add recovery-interval to jms:listener-container [SPR-10711] #15339
  • Make UriComponents.UriTemplateVariables public [SPR-10647] #15275
  • Allow BeanDefinitionRegistryPostProcessor to register other BeanDefinitionRegistryPostProcessors [SPR-10630] #15258
  • Provide access to attributes from the handshake HTTP session [SPR-10624] #15252
  • Allow @Bean to override a dynamically registered bean definition [SPR-10607] #15236
  • New @Description annotation to add description field to BeanDefinition when using annotation based configuration [SPR-10583] #15212
  • @RequestMapping inheritance not worked as expect with a dot path [SPR-10554] #15185
  • Assign lowest priority to "/**" in AntPathMatcher [SPR-10550] #15181
  • MarshallingHttpMessageConverter#supports() is not symmetric [SPR-10463] #15096
  • Add time zone support to the @Scheduled annotation for cron jobs [SPR-10456] #15089
  • UriComponentsBuilder should provide a way to remove the extension from the path [SPR-10272] #14906
  • Allow usage of @Lazy on injection points [SPR-10353] #14896
  • Allow meta-annotations to override attributes from their parent [SPR-10181] #14814
  • Comprehensive support for Java 8 / OpenJDK 8 [SPR-9639] #14273
  • Support for WebSocket messaging [SPR-9356] #13994
  • Support an asynchronous API for RestTemplate [SPR-8804] #13446
  • Make org.springframework.http.MediaType Serializable [SPR-8738] #13380
  • Doc: gzip support in RestTemplate [SPR-7874] #12531
  • Autowiring should support ordered collection driven by Order annotation or Ordered interface [SPR-5574] #10245

🪲 Bug Fixes

  • Stomp passcode should not be included in plain text in log messages [SPR-10868] #15495
  • WebSocket support on Jetty always uses SockJS HTTP fallbacks [SPR-10861] #15488
  • NoSuchMethodError: MediaType.isCompatibleWithMediaType;) [SPR-10860] #15487
  • Spring no longer recognizes mapped classes [SPR-10826] #15452
  • NoSuchMethodError: org.springframework.util.MultiValueMap.getOrDefault(Ljava/lang/Object;Ljava/lang/Object;) [SPR-10807] #15433
  • SpringConfigurator uses ListableBeanFactory method which is documented to be slow for EVERY new WebSocket connection [SPR-10605] #15234

📔 Documentation

  • Modify Spring 4.x documentation to reflect JSR-349 support [SPR-10813] #15439

3.2.4 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • Fix potential security risk when using Spring OXM [SPR-10806] #15432
  • Fix SimpleJdbc{Call,Insert} Javadoc [SPR-10792] #15418
  • Make HttpHeaders getFirstDate(String headerName) and setDate(String headerName, long date) methods as public [SPR-10713] #15341
  • WebAsyncUtils could/should cache the reference to StandardServletAsyncWebRequest's constructor [SPR-10673] #15301
  • Configurable JSON prefix on MappingJackson2HttpMessageConverter and MappingJacksonHttpMessageConverter [SPR-10627] #15255
  • Add ability to check that attribute does not exist in Spring MVC test framework [SPR-10509] #15141
  • XStreamMarshaller - no way to set a MapperWrapper on XStream [SPR-10421] #15054
  • Unnecessary blocking in DelegatingFilterProxy [SPR-10413] #15046

🪲 Bug Fixes

  • ResourceHttpRequestHandler always logs warning [SPR-10780] #15407
  • UriComponentsBuilder should be case-insensitive when parsing URL scheme names [SPR-10779] #15406
  • Spring + Quartz 2.2.0 Integration is Inconsistent [SPR-10775] #15401
  • is read incorrectly in PersistenceUnitReader [SPR-10767] #15393
  • JDBC Connection is not released due to incorrectly defined catch [SPR-10755] #15381
  • setPrefixJson don't work in org.springframework.web.servlet.view.json.MappingJackson2JsonView and org.springframework.web.servlet.view.json.MappingJacksonJsonView [SPR-10752] #15378
  • spring-instrument has unused dependency on spring-core [SPR-10732] #15360
  • spring-instrument is lacking Java 7 instrumentation manifest attributes [SPR-10731] #15359
  • method demarcated with @Async isn't executed when precompiled [SPR-10715] #15343
  • ClassPathJaxb2TypeScanner which scans packagesToScan for Jaxb2Marshaller does not scan for @XmlRegistry annotation [SPR-10714] #15342
  • Spring 3.2.2 AOP has increased memory usage [SPR-10709] #15337
  • ServletUriComponentsBuilder doesn't work if X-Forwarded-Host is in host:port format [SPR-10701] #15329
  • ${} placeholders are not resolved in @ImportResource [SPR-10686] #15314
  • ContentNegotiatingViewResolver does not select any views if no content types are requested [SPR-10683] #15311
  • BeanFactory.getBeansWithAnnotation() should not consider abstract beans [SPR-10663] #15291
  • Cached MethodExecutor invokes wrong method [SPR-10657] #15285
  • Missing RmiInvocationWrapperRTD.xml (build problem?) [SPR-10649] #15277
  • HttpHeaders should be tolerant with bad date-aware headers as it said in the RFC 2616 [SPR-10648] #15276
  • ConfigurationClassPostProcessor should be Ordered.HIGHEST_PRECEDENCE [SPR-10645] #15273
  • Invocation of @Async service fails [SPR-10636] #15264
  • TypeDescriptor must be Serializable [SPR-10631] #15259
  • UnionMethodMatcher and ClassFilterAwareUnionMethodMatcher have broken eqauls. [SPR-10604] #15233
  • Rename HttpHeaders#getIfNotModifiedSince() to getIfModifiedSince() to avoid confusing [SPR-10600] #15229
  • ClassCastException on meta @Components with not Spring value [SPR-10580] #15209
  • Revert change for SPR-10402 that allowed treating empty values as missing values [SPR-10578] #15207
  • Spring3.2 bug context:property-placeholder nested search property appear java.lang.StackOverflowError [SPR-10549] #15180
  • Async does not work anymore when switching from 3.2 to 3.2.2 [SPR-10492] #15125

📔 Documentation

  • Documentation Error: rollbackForClassname is listed, should be rollbackForClassName (notice UPPERcase N) [SPR-10754] #15380
  • SQL syntax error in jdbcTemplate update example [SPR-10625] #15253
  • Doc: JMS CachingConnectionFactory incompatible with DefaultMessageListenerContainer in some circumstances [SPR-10581] #15210