github spring-projects/spring-framework v4.1.2.RELEASE
4.1.2 Release

latest releases: v6.2.0-M3, v6.1.8, v6.0.21...
5 years ago

⭐ New Features

  • Straight JmsMessagingTemplate setup based on JMS ConnectionFactory [SPR-12413] #17021
  • Log context cache statistics in the TestContext framework [SPR-12409] #17017
  • Enhance MockHttpServletRequestBuilder with contentType(String) method [SPR-12405] #17013
  • DefaultListableBeanFactory should allow efficient access to current bean names [SPR-12404] #17012
  • Auto exported lazy @ManagedResources should at least log errors if they can't be initialized [SPR-12399] #17007
  • Mybatis config error leads to endless loop, and no std error output [SPR-12397] #17005
  • Configuration class parsing should reuse metadata from AnnotatedBeanDefinition as far as possible [SPR-12394] #17002
  • Improve diagnostics when AnnotationAttributesReadingVisitor triggers an ArrayStoreException from Class.getAnnotations() [SPR-12387] #16995
  • Improvement of CharacterEditor.setAsText() and setAsUnicode() [SPR-12386] #16994
  • In, AutowireUtils.sortConstructors(), Using valueOf is faster than using constructor [SPR-12385] #16993
  • org.springframework.oxm.xmlbeans.XmlOptionsFactoryBean.setOptions(Map) makes inefficient use of keySet iterator [SPR-12383] #16991
  • String comparison using .equals() in ASM ClassReader [SPR-12382] #16990
  • Support Netty as the underlying HTTP client for the RestTemplate [SPR-12381] #16989
  • Improvement of BeanWrapperImpl.getPropertyValue(PropertyTokenHolder tokens) [SPR-12378] #16985
  • PropertyDescriptor in PropertyValue needs to be transient to avoid serialization failure [SPR-12377] #16984
  • Update Documentation about @RequestMapping's defaults [SPR-12375] #16982
  • Add an option to use include instead of forward mode in Tiles support [SPR-12374] #16981
  • MappingJackson2XmlHttpMessageConverter should support text/xml and application/*-xml [SPR-12366] #16972
  • Inefficient new Byte, Integer, Character constructor calls in ASM ClassReader [SPR-12365] #16970
  • org.springframework.ui.ModelMap.mergeAttributes(Map) makes inefficient use of keySet iterator [SPR-12363] #16968
  • Add support for DELETE with body to RestTemplate through exchange method [SPR-12361] #16966
  • Improve diagnostics when OrderUtils.getPriority encounters an ArrayStoreException during annotation introspection [SPR-12357] #16962
  • BeanFactoryAnnotationUtils,qualifiedBeanOfType, Inefficient use of keySet iterator. [SPR-12356] #16961
  • Favor more locally declared composed annotations over interface annotations in AnnotationUtils [SPR-12355] #16960
  • Add Object type to Comparable for removing raw type warning in StandardTypeComparator [SPR-12353] #16958
  • Delete unused import in HttpSessionHandshakeInterceptor class [SPR-12352] #16957
  • ExposeInvocationInterceptor doesn't make a best effort to be first in execution order [SPR-12351] #16956
  • Allow for using the response encoding when escaping HTML characters [SPR-12350] #16955
  • HibernateTransactionManager should allow holdability of ResultSet into the View layer [SPR-12349] #16954
  • Improve Reference documentation @PathVariable, @RequestHeader & @RequestParam using Map<String, String> [SPR-12347] #16952
  • JdbcTemplate does not apply values of zero for setMaxRows, setFetchSize and setQueryTimeout [SPR-12338] #16943
  • OpenJpaDialect does not support declarative transaction isolation [SPR-12333] #16938
  • Extend SpEL compiler for few more constructs: inline lists, string concatenation and varargs invocation [SPR-12328] #16933
  • SqlServerMaxValueIncrementer may cause table lock [SPR-12327] #16932
  • AnnotationUtils provides poor diagnostics if getDeclaredAnnotations throws an exception [SPR-12325] #16930
  • Add a new ResponseEntity$HeadersBuilder method [SPR-12324] #16929
  • Allow clientInboundChannel interceptors to take advantage of message mutability [SPR-12321] #16926
  • EclipseLinkJpaDialect does not support declarative transaction isolation [SPR-12319] #16924
  • Better error reporting for circular dependencies between JavaConfig classes [SPR-12317] #16922
  • Allow access to underlying WebSocketSession with WebSocketMessageBroker config [SPR-12314] #16919
  • Add serializerByType() deserializerByType() and mixIn() to Jackson2ObjectMapperBuilder [SPR-12313] #16918
  • WebSocketSession should extend java.io.Closeable [SPR-12311] #16916
  • Allow binary WebSocket messages in StompSubProtocolHandler [SPR-12301] #16907
  • Upgrade optional JsonPath dependency from 0.9.0 to 1.1.0 [SPR-12299] #16905
  • JavaMailSender.doSend() should more aggressively catch exceptions [SPR-12298] #16904
  • JavaMailSenderImpl - Set empty String params to null for setUsername and setPassword [SPR-12294] #16899
  • CompositePropertySource should extend EnumerablePropertySource [SPR-12292] #16897
  • Return sensible defaults in MockServletContext's Servlet and Filter registration get methods [SPR-12290] #16895
  • Allow server-side code to send DISCONNECT messages to the broker [SPR-12288] #16893
  • Allow to define the sort order of media types to produce [SPR-12286] #16891
  • Enable parallel loading in DecoratingClassLoader and subclasses on JDK 7+ [SPR-12285] #16890
  • Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
  • Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
  • HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
  • Support jackson mix-in classes in Jackson2ObjectMapperFactoryBean [SPR-12144] #16758
  • Create a new UndertowXhrTransport [SPR-12008] #16624
  • SpEL's arithmetic operations should explicitly detect BigInteger/Short/Byte and fall back to double handling for unknown Number subtypes [SPR-9913] #14546
  • Log4jConfigurer initLogging(location) should throw FileNotFoundException for file URL as well [SPR-9725] #14359
  • Greek characters and htmlEscape() [SPR-9293] #13931
  • Spring's JDBC connection access disables shared cache in EclipseLink [SPR-7753] #12409

🪲 Bug Fixes

  • StompDecoder StringIndexOutOfBoundsException with Apache ActiveMQ [SPR-12418] #17025
  • SockJsClient does not stop transports on invocation of stop() [SPR-12417] #17024
  • ShallowEtagHeaderFilter is not Servlet 2.5 compatible [SPR-12414] #17022
  • WebMvcStompEndpointRegistry registers the same StompSubProtocolHandler to the SubProtocolWebSocketHandler several times [SPR-12403] #17011
  • HIbernateJpaSessionFactory only works for hibernate < 4.3 [SPR-12401] #17009
  • UriComponentsBuilder only normalizes paths with two consecuitive '/' but not more than two [SPR-12398] #17006
  • PersistenceAnnotationBeanPostProcessor should check for PersistenceContext.synchronization method instead of synchronizationType [SPR-12396] #17004
  • Regression: util:properties location attribute does not resolve parameters in #{param} format [SPR-12391] #16999
  • ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
  • ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
  • Package tangle in sockjs [SPR-12379] #16986
  • Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
  • Compiled SpEL expression fail when used with registered function [SPR-12359] #16964
  • Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
  • ServerEndpointExporter causes refresh to fail with java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available [SPR-12340] #16945
  • JCache operations metadata are not cached properly [SPR-12337] #16942
  • @EnableCaching provokes early initialization of any config class declaring a CacheManager [SPR-12336] #16941
  • ResourceUrlEncodingFilter fails to look up full path when Spring Security is enabled [SPR-12332] #16937
  • Regression: Commons Logging setup in AnnotationUtils causes early initialization of logging system [SPR-12329] #16934
  • VerifyError when trying to compile constructor invocation with SpEL [SPR-12326] #16931
  • YamlProcessor and YamlMapFactoryBean allow duplicate keys in map nodes [SPR-12318] #16923
  • Private @Scheduled methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913
  • TextMessage.toString() throws StringIndexOutOfBoundsException if payload contains multibyte characters [SPR-12307] #16912
  • Provider<...> declaration for @Value method argument fails with TypeMismatchException [SPR-12297] #16903
  • NullPointerException in UnsentDisconnectChannelInterceptor [SPR-12295] #16900
  • HttpEntity parameter 'null' in method (regression) [SPR-12287] #16892
  • Failure to insert version in full path URLs within CSS file [SPR-12281] #16886
  • DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
  • ResourceUrlProviderExposingInterceptor not set on the resourceHandlerMapping [SPR-12279] #16884
  • VerifyErrors when using SpEL compilation with Thymeleaf [SPR-12271] #16876
  • @Qualifier resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805
  • JCache dependency in spring-aspects [SPR-12163] #16777
  • Memory leak with SimpleMessageListenerContainer and ChainedExceptionListener on Single/CachingConnectionFactory [SPR-10397] #15030
  • TransactionAspectSupport.currentTransactionStatus() can return null when from the exception signature we'd expect a NoTransactionException [SPR-9144] #13783
  • JdbcUtils getResultSetValue does not handle Apache Derby BLOBs correctly [SPR-8810] #13452
  • AnnotationDrivenStaticEntityMockingControl in spring-aspects module require javax.persistence.Entity on compiler classpath [SPR-6819] #11485

📔 Documentation

  • task:executor keep-alive not explained in documentation [SPR-12407] #17015
  • TimerTaskExecutor wasn't removed from documentation [SPR-12389] #16997
  • Reference guide points to Quartz 1.x classes [SPR-12306] #16911
  • Wrong reference to SingleColumnRowMapper in deprecated-list [SPR-12282] #16887

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.