github spring-projects/spring-framework v4.0.1.RELEASE
4.0.1 Release

latest releases: v6.2.0, v6.1.15, v6.2.0-RC3...
5 years ago

⭐ 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
  • Handle NoClassDefFoundError for TestExecutionListeners consistently in the TestContext framework [SPR-11347] #15971
  • PlaceholderConfigurerSupport.doProcessProperties() loses stack trace on exception [SPR-11346] #15970
  • ResolvableType tests failing against OpenJDK 8 build 124 [SPR-11342] #15966
  • ServletTestExecutionListener is not enabled by default in abstract base test classes [SPR-11340] #15964
  • Performance issues with SerializableTypeWrapper on Java 1.7.0_51 [SPR-11335] #15959
  • AbstractWebSocket client doesn't allow setting Cookie header [SPR-11332] #15956
  • Wrong assert in AspectJAwareAdvisorAutoProxyCreator.setAspectJAdvisorFactory() [SPR-11330] #15954
  • spring-messaging automatically assumes Principal.getName() is unique for sending messages to users [SPR-11327] #15951
  • @Header does not take any arbitrary headers in. [SPR-11326] #15950
  • Additional browser tabs receive duplicate messages sent to user destination [SPR-11325] #15949
  • Downgrade accidental use of Java 1.7 APIs [SPR-11319] #15943
  • ServletWebRequest.checkNotModified() methods should treat HEAD identically to GET [SPR-11317] #15941
  • MockMvc does not provide contentType for MockHttpServletRequest [SPR-11308] #15932
  • SimpleBrokerMessageHandler destinationPrefixes are not trimmed [SPR-11307] #15931
  • Bad type comparison in ReflectionHelper.getTypeDifferenceWeight(List paramTypes, List argTypes) [SPR-11306] #15930
  • StandardEnvironment's system environment access produces warning with stacktrace on WebSphere [SPR-11297] #15921
  • Full Quartz 2.2 compatibility, including LocalDataSourceJobStore [SPR-11284] #15908
  • UnsupportedOperationException with use of AlternativeJdkIdGenerator on z/OS WAS 8.5 [SPR-11278] #15902
  • NPE in StompSubProtocolHandler.handleMessageFromClient [SPR-11277] #15901
  • @Async with cglib based proxy causes memory leak in permgen [SPR-11276] #15900
  • @Async with cglib based proxy causes memory leak in heap [SPR-11275] #15899
  • mvc:annotation-driven incorrectly detects validation provider on classpath [SPR-11272] #15897
  • EhCacheFactoryBean should not call set(Sampled)StatisticsEnabled on EhCache 2.7/2.8 [SPR-11265] #15890
  • hardcoded ".../queue/..."-part in DefaultUserDestinationResolver conflicts with rabbitmq exchange naming [SPR-11263] #15888
  • NavigableSet and NavigableMap lookup missing in CollectionFactory class in spring-core [SPR-11257] #15882
  • XMLEventStreamWriter fails to handle writeEmptyElement() followed by writeAttribute() [SPR-11254] #15879
  • Problem with autowiring of "generic Beans" (defined via RootBeanDefinition(s)) [SPR-11250] #15875
  • Regression: ClassCastException using @CacheEvict with primitive varargs [SPR-11249] #15874
  • Regression: InjectionMetadata cache needs to handle different bean classes per bean name [SPR-11246] #15871
  • UriComponentsBuilder - NoSuchMethodError: java.lang.reflect.Method.getParameterCount [SPR-11245] #15870
  • 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 in 4.0.0 - A scoped-proxy bean cannot override another bean [SPR-11229] #15854
  • Regression: Incorrect generic type resolved by AbstractMessageConverterMethodArgumentResolver [SPR-11225] #15850
  • Using @Scheduled annotation fails in 4.0.0 but worked with 3.2.5 [SPR-11223] #15848
  • context:component-scan element says error in the mvc-cofig.xml [SPR-11221] #15846
  • Infinite Recursion in org.springframework.core.ResolvableType.hashCode(ResolvableType.java:692) [SPR-11219] #15844
  • theme resolution fails with "IllegalArgumentException: Basename must not be empty" when an empty theme value is provided via request url [SPR-11128] #15754
  • Fix @Bean meta-annotation detection when using ASM [SPR-10488] #15121

📔 Documentation

  • Incorrect example in section 9.9.2 [SPR-11318] #15942
  • Document that Servlet mocks are now incompatible with the Servlet 2.5 spec [SPR-11292] #15916
  • Spring Integration Testing documentation refers to Cactus, a dead project [SPR-11280] #15904
  • Missing documentation for testing Spring Messaging with WebSockets [SPR-11266] #15891
  • Add explanation of @Profile("default") to reference documentation [SPR-11256] #15881
  • Error in documentation regarding exclusion of commons-logging [SPR-11232] #15857
  • Document how websocket server implementations should be configured by users to limit message size [SPR-11023] #15651
  • Update reference documentation regarding idref and local [SPR-8182] #12833

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.