Skip to content

Releases: spring-projects/spring-framework

4.1.3 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Please add static unprocessableEntity() builder method to ResponseEntity [SPR-12515] #17120
  • Support for X-Forwarded-Prefix in ServletUriComponentsBuilder [SPR-12500] #17105
  • Allow YamlProcessor subclasses to build the flattened map [SPR-12499] #17104
  • Check the user for a SockJS request [SPR-12497] #17103
  • Consistent bridge method handling in annotation post-processors [SPR-12495] #17101
  • Add UriComponentsBuilder.clone() [SPR-12494] #17100
  • @Scope and other common bean annotations on nested @Component classes [SPR-12486] #17092
  • Allow overriding InvocableHandlerMethod.invoke and/or ServletInvocableHandlerMethod.invokeAndHandle in subclasses [SPR-12484] #17090
  • Default conversion support for EnumSet / EnumMap [SPR-12483] #17089
  • Update SqlRowSet interface with JDBC 4.x ResultSet additions [SPR-12480] #17086
  • Enrich the message for "connected" events with Principal [SPR-12479] #17085
  • Extract ContentCachingRequestWrapper and ContentCachingResponseWrapper for custom use outside of Spring's filters [SPR-12477] #17083
  • NotReadablePropertyException should take causing exception as constructor argument [SPR-12467] #17073
  • SimpleJdbcInsert should take Map<String, ?> as arg instead of Map<String, Object> [SPR-12462] #17067
  • PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:392) too aggressive, resulting in NoClassDefFoundError [SPR-12461] #17066
  • Making it easier to replace "RequestMappingHandlerAdapter.handleInternal" [SPR-12460] #17065
  • Registering an HttpMessageConverter while preserving default converters [SPR-12450] #17055
  • BeanMethodInterceptor doesn't forward user-provided arguments to getBean(name, args) [SPR-12443] #17048
  • GenericGroovyApplicationContext propagates BeanDefinitionParsingException only when context file is named 'beans.groovy' [SPR-12435] #17040
  • MessageHeaderAccessor copyHeaders... tuning [SPR-12431] #17037
  • Concurrent registration/iteration in PropertySourcesPropertyResolver [SPR-12428] #17034
  • Allow custom @Validated annotations for handler method parameters [SPR-12406] #17014
  • Use Jackson ObjectMapper improved default properties outside spring-web [SPR-12293] #16898
  • Support for Undertow 1.1 / WildFly 8.2 [SPR-12302] #16836
  • @Configuration should respect @DependsOn on imported or nested classes as well [SPR-11883] #16502
  • Spring dependency injection for Jackson serializers [SPR-10768] #15394
  • @Validated should allow ElementType.METHOD target [SPR-9174] #13812

🪲 Bug Fixes

  • Synchronize message sending in HTTP SockJS sessions with request initialization [SPR-12516] #17121
  • SpEL compilation problem for payload concatenation use case in Spring Integration [SPR-12514] #17119
  • @SendTo annotation not found on Jms listener with JDK proxy [SPR-12513] #17118
  • @ControllerAdvice(basePackageClasses) do the prefix search by package name. [SPR-12509] #17114
  • Base packages referenced from @ControllerAdvice must contain at least one Controller [SPR-12506] #17111
  • SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
  • AnnotationAttributesReadingVisitor.doVisitEnd doesn't handle possible null return from AnnotationUtils.getAnnotations [SPR-12493] #17099
  • @Resource injection broken under spring-framework > 4.1.0 [SPR-12490] #17096
  • be more defensive looking up javax.annotation.Priority (jdk6 compatibility) [SPR-12489] #17095
  • SPR-12443 breaks Spring Security's AuthenticationConfiguration [SPR-12488] #17094
  • Need a defensive close() in YamlProcessor [SPR-12487] #17093
  • Cache busting does not work when context path is different from / [SPR-12459] #17064
  • Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
  • NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
  • Early initialization of @Configuration class may lead to unwanted call to setBeanFactory [SPR-12445] #17050
  • Not able to send message specific to user using STOMP over WebSocket [SPR-12444] #17049
  • Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
  • webjar stops working [SPR-12432] #17038
  • Using TransactionManagementConfigurer causes StackOverflowError that results in NoClassDefFoundError for FatalBeanException [SPR-10787] #15413

📔 Documentation

  • Missing Id in Jms Endpoint [SPR-12425] #22187
  • Misleading documentation for SqlRowSet [SPR-12476] #17082
  • Star character interpreted as bold expression in generated documentation [SPR-12456] #17061

4.1.2 Release

17 Jan 14:33
Compare
Choose a tag to compare

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

4.0.8 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
  • XML bean singleton attribute silently ignored [SPR-12167] #16781
  • HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
  • Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
  • Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
  • Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
  • Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
  • Update default SockJS CDN [SPR-12254] #16868
  • AnnotationUtils provides poor diagnostics if getDeclaredAnnotations throws an exception [SPR-12325] #16930
  • Improve diagnostics when AnnotationAttributesReadingVisitor triggers an ArrayStoreException from Class.getAnnotations() [SPR-12387] #16995
  • Log context cache statistics in the TestContext framework [SPR-12409] #17017

🪲 Bug Fixes

  • SocketUtils should not be an abstract class [SPR-12169] #16783
  • Regression: Slow TypeDescriptor lookups in CachedIntrospectionResults on IBM JVM 6 [SPR-12185] #16799
  • Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
  • @Qualifier resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805
  • WebSocketMessageBrokerConfigurationSupport requiring JDK 7+ due to setRemoveOnCancelPolicy [SPR-12238] #16852
  • org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
  • Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
  • Duplicate entries in ResolvableType cache [SPR-12275] #16880
  • DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
  • Provider<...> declaration for @Value method argument fails with TypeMismatchException [SPR-12297] #16903
  • TextMessage.toString() throws StringIndexOutOfBoundsException if payload contains multibyte characters [SPR-12307] #16912
  • Private @Scheduled methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913
  • Regression: Commons Logging setup in AnnotationUtils causes early initialization of logging system [SPR-12329] #16934
  • ServerEndpointExporter causes refresh to fail with java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available [SPR-12340] #16945
  • Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
  • Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
  • ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
  • ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
  • PersistenceAnnotationBeanPostProcessor should check for PersistenceContext.synchronization method instead of synchronizationType [SPR-12396] #17004
  • HIbernateJpaSessionFactory only works for hibernate < 4.3 [SPR-12401] #17009
  • ShallowEtagHeaderFilter is not Servlet 2.5 compatible [SPR-12414] #17022
  • StompDecoder StringIndexOutOfBoundsException with Apache ActiveMQ [SPR-12418] #17025
  • Java 8 introspection causes breakage with FreeMarker Configuration bean [SPR-12448] #17053

📔 Documentation

  • ContextLoaderServlet is mentioned in doc, but does not exist [SPR-7725] #12381
  • condition vs. conditional typo in @Cacheable reference documenation [SPR-12273] #16878
  • TimerTaskExecutor wasn't removed from documentation [SPR-12389] #16997
  • task:executor keep-alive not explained in documentation [SPR-12407] #17015

3.2.12 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ New Features

  • Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
  • HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
  • Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
  • Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
  • Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
  • Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
  • Log context cache statistics in the TestContext framework [SPR-12409] #17017

🪲 Bug Fixes

  • @Qualifier resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805
  • org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
  • Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
  • DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
  • Provider<...> declaration for @Value method argument fails with TypeMismatchException [SPR-12297] #16903
  • Private @Scheduled methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913
  • Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
  • Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
  • ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
  • ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
  • @Import in another annotation still results in double scan [SPR-12334] #16939
  • util:map does not recognize the attribute of value-type [SPR-10994] #15622

📔 Documentation

  • ContextLoaderServlet is mentioned in doc, but does not exist [SPR-7725] #12381

4.1.1 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Allow configuring custom executor with WebSocket message broker [SPR-12272] #16877
  • Clarify the single class restriction with @JsonView for a response body advice [SPR-12270] #16875
  • PreparedStatement#setBlob(int, InputStream) is not supported in DefaultLobCreator [SPR-12265] #16870
  • Update default SockJS CDN [SPR-12254] #16868
  • Message broker thread pools should be set up in allowCoreThreadTimeOut mode [SPR-12249] #16863
  • Consistent Environment access in XML bean definition parsing code [SPR-12248] #16862
  • Create builder for Jackson ObjectMapper [SPR-12243] #16857
  • Data binding with java.util.Optional: traversal of nested paths, detection of empty holders [SPR-12241] #16855
  • INSERT SELECT of large CLOB causes ORA-01461 on setString [SPR-12240] #16854
  • LocalSessionFactoryBean doesn't support JPA 2.1 auto-apply @Converter on Hibernate 4.3 [SPR-12234] #16849
  • Expose @Bean method metadata in the BeanDefinition [SPR-12232] #16847
  • Provide subclassing hooks in PathMatchingResourcePatternResolver [SPR-12231] #16846
  • Explicitly release rolled-back database savepoints during (long-running) transaction [SPR-12228] #16843
  • Further optimize ReflectionUtils.isCglibRenamedMethod [SPR-12227] #16842
  • Support Jackson based XML serialization in RestTemplate [SPR-12225] #16840
  • Improve performance of MapPropertySource.containsProperty [SPR-12224] #16839
  • JndiLocatorDelegate.isDefaultJndiEnvironmentAvailable() should apply stronger checks [SPR-12223] #16838
  • Support ordering of conditions [SPR-12219] #16833
  • Allow configuring custom HandlerMethodArgumentResolver and HandlerMethodReturnValueHandler [SPR-12217] #16831
  • DISCONNECT messages created in StompSubProtocolHandler do not contain user information [SPR-12215] #16829
  • Add JavaConfig equivalent of tx:jta-transaction-manager [SPR-12197] #16811
  • Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
  • Add spring macros support for Groovy Markup Templates [SPR-12193] #16807
  • Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
  • Access to propertySources in CompositePropertySource [SPR-12182] #16796
  • Set Jackson DEFAULT_VIEW_INCLUSION property to false by default [SPR-12179] #16793
  • Using websocket scope in application event listener [SPR-12172] #16786
  • Consistent support for java.util.Optional for all applicable handler method arguments [SPR-12171] #16785
  • XML bean singleton attribute silently ignored [SPR-12167] #16781
  • Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
  • SessionDisconnectEvent should extend AbstractSubProtocolEvent [SPR-12156] #16770
  • Use DEBUG log level for broken WebSocket client connections or write failures [SPR-12155] #16769
  • ResponseBodyAdvice to accept null values? [SPR-12152] #16766
  • FormHttpMessageConverter writes ASCII encoded so that a multipart form data can not contain filenames with German Umlaute [SPR-12108] #16724
  • Set Jackson FAIL_ON_UNKNOWN_PROPERTIES property to false by default [SPR-11891] #16510
  • please let context:component-scan base-package eval placeholder then split by comma [SPR-10425] #15058
  • make context:exclude-filter expression supports placeholder like context:component-scan base-package [SPR-10424] #15057
  • Improve @RequestParam defaultValue's value JavaDoc [SPR-9967] #14601
  • Section 15.3.2 - example description not matching example code [SPR-8025] #12680

🪲 Bug Fixes

  • Java 8 introspection causes breakage with FreeMarker Configuration bean [SPR-12448] #17053
  • Duplicate entries in ResolvableType cache [SPR-12275] #16880
  • MethodReference isn't thread-safe [SPR-12269] #16874
  • Spring 4.1 with WebMvcConfigurationSupport enabled does not register a default view resolver [SPR-12267] #16872
  • Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
  • org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
  • Sending message in ApplicationListener results in ERROR level logging [SPR-12247] #16861
  • PropertySource overrides do not work with more than one classpath file [SPR-12244] #16858
  • Regression: HttpEntityMethodProcessor does not support HttpEntity subclasses anymore [SPR-12242] #16856
  • WebSocketMessageBrokerConfigurationSupport requiring JDK 7+ due to setRemoveOnCancelPolicy [SPR-12238] #16852
  • Regression in @Condition exclusion [SPR-12233] #16848
  • Protobuf support for Spring MVC 4.1 doesn't work with default settings [SPR-12229] #16844
  • Exception in "inboundClientChannel" interceptor for DISCONNECT prevents broker from learning about it [SPR-12218] #16832
  • Unexpected override order for @Configuration based property sources [SPR-12198] #16812
  • NoUniqueBeanDefinitionException when autowiring static nested class that extends its containing class [SPR-12195] #16809
  • Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
  • Regression: Slow TypeDescriptor lookups in CachedIntrospectionResults on IBM JVM 6 [SPR-12185] #16799
  • Message listener container does not apply proper recovery anymore [SPR-12183] #16797
  • Enum to String conversion broken for subclasses [SPR-12181] #16795
  • Race condition in ReloadableResourceBundleMessageSource since 4.1.0 [SPR-12177] #16791
  • JDBC conversion exception for enum types on MySQL [SPR-12174] #16788
  • SocketUtils should not be an abstract class [SPR-12169] #16783
  • Fix ResourceUrlProvider path check in getForRequestUrl [SPR-12158] #16772
  • getObject(index, requiredType) fails for BigInteger on Derby [SPR-12...
Read more

4.1 GA Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
  • allow value expressions for messaging listener annotation destinations [SPR-12134] #16750
  • Call to addResourceLocations should not always be mandatory [SPR-12133] #16749
  • Consider enhancing ResourceUrlProvider to be able to change the domain, port, or scheme [SPR-12130] #16746
  • Update MVC namespace to match improvements made to the Java config in RC2 [SPR-12129] #16745
  • Provide full control over the registration of resolvers and transformers in ResourceHandlerRegistration [SPR-12124] #16740
  • RestTemplate does not render correct url for server ports [SPR-12123] #16739
  • Performance issue on ResolvableType cache [SPR-12122] #16738
  • Include http status code in ServletRequestHandledEvent [SPR-12119] #16735
  • Consider adding static badRequest() builder method to ResponseEntity [SPR-12112] #16728
  • PropertySources added via @PropertySource aren't available in the environment during component scanning [SPR-12111] #16727
  • Placeholder resolution within @PropertySource resource locations can not resolve properties from prior sources [SPR-12110] #16726
  • Remove synchronization around filteredPropertyDescriptorsCache in case of non-existing entry [SPR-12106] #16722
  • Use putIfAbsent in CachedIntrospectionResults.addTypeDescriptor [SPR-12102] #16718
  • MockHttpServletRequest should honor scheme in isSecure() method [SPR-12098] #16714
  • PathMatchingResourcePatternResolver cannot search for "classpath*" patterns in a jar file roots [SPR-12095] #16711
  • SchedulerAccessorBean should be able to find a default Scheduler [SPR-12094] #16710
  • Convenient EhCache CacheManager setup in an @Bean method [SPR-12093] #16709
  • Allow customizing the SockJsMessageCodec in WebSocket Java config and XML namespace [SPR-12091] #16707
  • MockHttpServletRequest should honor "Host" header in getServerName() and getServerPort() [SPR-12088] #16704
  • Add Exception tracking to JamonPerformanceMonitorInterceptor [SPR-12068] #16684
  • Allow configuring custom redirect prefix in HandlerMethodReturnValueHandler's [SPR-12054] #16670
  • Too many exception stack traces related to disconnected SockJS clients [SPR-11870] #16489
  • Support ignoreResourceNotFound as attribute of util:properties [SPR-10614] #15242
  • ReloadableResourceBundleMessageSource locks properties hashmap and fails under load. [SPR-10500] #15133
  • Unnecessarily conservative locking in registerDependentBean is a bottleneck [SPR-8814] #13456
  • Can't insert into nvarchar2 using SimpleJdbcInsert whereas it works with SimpleJdbcTemplate [SPR-8571] #13215
  • Refactor AssertThrows to support Throwable instead of Exception [SPR-6362] #11028

🪲 Bug Fixes

  • Jackson @JSONView not taken in account when using XML serialization [SPR-12149] #16763
  • CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
  • InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation called with wrong beanClass for bean declared on JavaConfig [SPR-12142] #16756
  • Plain FactoryBean declaration on @Bean method leads to early call (pre injection) [SPR-12141] #16755
  • InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation not called for bean declared on JavaConfig [SPR-12140] #16754
  • CssLinkResourceTransformer does not use resolveUrlPath properly [SPR-12137] #16752
  • Metadata provided by ImportAware ignores conditions and is dependent on the order of the configuration classes [SPR-12128] #16744
  • GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
  • OpenEntityManagerInViewInterceptor doesn't always close connections with WildFly 8 [SPR-12118] #16734
  • PropertySource named cannot be added relative to itself (@PropertySource processing fails) [SPR-12115] #16731
  • MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
  • ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
  • Wrong string equality in Indexer [SPR-12105] #16721
  • ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
  • @Async Supporting ListenableFuture not applied with AspectJ [SPR-12092] #16708
  • UncaughtExceptionHandler is not configured with AspectJ [SPR-12090] #16706
  • getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
  • LazyInitTargetSourceCreator does not work in Java-based configuration [SPR-10508] #15140
  • Injecting EXTENDED @PersistenceContext into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476

📔 Documentation

  • Document how to register custom MIME type in MockServletContext [SPR-12126] #16742
  • Update reference docs table 29.1. (Cache SpEL available metadata) with @CachePut details [SPR-12125] #16741
  • Update documentation to describe the resource handling additions in 4.1 [SPR-12117] #16733
  • Update reference for JSONP support [SPR-12113] #16729
  • Documentation misses chapters 4.13 and 4.14 [SPR-12107] #16723
  • Document support for merging custom TELs with default TELs in the reference manual [SPR-12083] #16699
  • Document automatic discovery of default TestExecutionListeners in the reference manual [SPR-12082] #16698
  • Document @TestPropertySource support in the reference manual [SPR-12076] #16692
  • Document Groovy script support in the TestContext framework in the reference manual [SPR-12027] #16643
  • Document programmatic test transaction management support [SPR-11941] #16558
  • Document @Sql script support in the reference manual [SPR-11849] #16468
  • No real documentation on using the spring mvc artifact [SPR-11534] #16159
  • Document JCache configuration in the cache section [SPR-10176] [#14809](https://github.com/s...
Read more

4.0.7 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Performance issue on ResolvableType cache [SPR-12122] #16738
  • Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
  • BeanNameViewResolver should not try to use non-View beans [SPR-12079] #16695
  • AbstractTypeHierarchyTraversingFilter should be more lenient when loading types [SPR-12042] #16658
  • ConcurrentMapCacheManager has interdependent setters [SPR-12026] #16642
  • RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633
  • Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
  • XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966

🪲 Bug Fixes

  • Injecting EXTENDED @PersistenceContext into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476
  • getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
  • ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
  • ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
  • MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
  • GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
  • Plain FactoryBean declaration on @Bean method leads to early call (pre injection) [SPR-12141] #16755
  • CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
  • Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
  • includeFilters and excludeFilters of @ComponentScan cause failures when used in meta-annotations [SPR-12065] #16681
  • Spring may invoke @Bean methods too early in case of a circular reference [SPR-12018] #16634
  • AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
  • Non-stable BeanCurrentlyInCreationException with wrong Java config [SPR-12004] #16620
  • Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
  • NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
  • StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
  • UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
  • Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634

📔 Documentation

  • Incorrect documentation for AbstractAnnotationConfigDispatcherServletInitializer.getServletConfigClasses() [SPR-12028] #16644
  • Documentation typo [SPR-12020] #16636
  • user destinations docs are missing the brokerPrefix [SPR-11992] #16608
  • Remove outdated IDE, JIRA and Tomcat references [SPR-7521] #12179

3.2.11 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ New Features

  • XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966
  • Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
  • RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633

🪲 Bug Fixes

  • Injecting EXTENDED @PersistenceContext into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476
  • Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634
  • getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
  • UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
  • StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
  • NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
  • Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
  • AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
  • Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
  • MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
  • Plain FactoryBean declaration on @Bean method leads to early call (pre injection) [SPR-12141] #16755
  • CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762

4.1 RC2 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Improve Reference Documentation about Spring JMS (infrastructure) [SPR-12073] #16689
  • Make @Payload as ElementType.METHOD too [SPR-12071] #16687
  • Consider adding static notFound() builder method to ResponseEntity [SPR-12070] #16686
  • JmsMessagingExceptionTranslator package tangle [SPR-12064] #16680
  • Add more HttpHeaders constants for standard HTTP headers [SPR-12063] #16679
  • Improve exception message: Default SmartContextLoaders do not support locations and @Configuration classes simultaneously [SPR-12060] #16676
  • Shortcut method for building HEAD requests with MockMvcRequestBuilders [SPR-12055] #16671
  • Introduce @TestPropertySource support in the TestContext framework [SPR-12051] #16667
  • String to Enum Interface conversion not working [SPR-12050] #16666
  • Missing custom entity type filter in LocalSessionFactoryBean [SPR-12049] #16665
  • Improve comment in RuntimeTestWalker [SPR-12044] #16660
  • Document that MockHttpServletRequest does not comply with Servlet spec regarding Accept-Language header [SPR-12043] #16659
  • SpEL Compiler: Make OpModulus compilable [SPR-12041] #16657
  • JmsListener/ScheduledAnnotationBeanPostProcessor should use SmartInitializingSingleton instead of ContextRefreshedEvent [SPR-12039] #16655
  • JmsMessagingTemplate should not throw JmsException directly [SPR-12038] #16654
  • Update JmsMessagingTemplate to support MessageRequestReplyOperations [SPR-12037] #16653
  • Enhance ResourceHandlerRegistration API for resource transformers/resolvers [SPR-11982] #16598
  • Isolation support for JPA with Hibernate EntityManager 4 [SPR-11942] #16559
  • Provide initial support for Undertow 1.1 [SPR-11914] #16533
  • Support Jackson2 based XML serialization/deserialization [SPR-11785] #16407
  • @Configuration imported via @ImportResource is not processed [SPR-11723] #16345
  • Introduce mechanism for automatic discovery of default TestExecutionListeners [SPR-11466] #16092
  • @Configuration imported via ImportBeanDefinitionRegistrar is not processed as configuration [SPR-11430] #16056
  • Support for JSR-356 on WebLogic 12.1.3 [SPR-11293] #15917
  • BeanFactory lacks method for getting bean by type with specified constructor arguments [SPR-11235] #15860
  • Support Groovy scripts for bean definitions in the TestContext framework [SPR-11233] #15858
  • Compatibility with GlassFish 4.1 and Tyrus 1.8 (WebSocket 1.1) [SPR-11094] #15720
  • @ComponentScan does not allow for registering beans with lazy initialization [SPR-10459] #15092
  • Spel Implicit Map [SPR-9472] #14107
  • Hibernate4 version of SpringSessionContext.currentSession() does not create a session if TransactionSynchronizationManager does not contain one [SPR-9020] #13659
  • readOnly transaction doesn't work with JPA and Hibernate 4 [SPR-8959] #13599
  • Introduce mechanism for registering default TELs if a custom TEL is registered via @TestExecutionListeners [SPR-8854] #13496
  • UrlBasedViewResolver should implement setExposedContextBeanNames (not InternalResourceViewResolver) [SPR-8064] #12719
  • Passing lookup-method arguments to created bean constructor [SPR-7431] #12089
  • Spring REST @MVC: Add support for google Protocol Buffers resource representation format [SPR-5807] #10477
  • @LookupMethod annotation for use with component scanning [SPR-5192] #9865
  • Binding in Velocity templates using EL accessors ([, ]) for collections produces non xhtml strict compliant output [SPR-5172] #9845
  • HibernateJpaDialect does not support setting a specific isolation level per transaction [SPR-5012] #9687
  • How to implement Pessimistic Locking with JPA [SPR-3812] #8492
  • Implement synchronous request / response logic in JmsTemplate [SPR-3332] #8017

🪲 Bug Fixes

  • SpEL Compiler: NPE on Indexer compilation, when is used map accessor [SPR-12045] #16661
  • SpEL Compiler produces incompatible code with method generic returns [SPR-12040] #16656
  • SockJsClient doesn't propagate "subProtocols" and "extensions" to the handshake request [SPR-12030] #16646
  • NPE in DefaultListableBeanFactory#getPriority [SPR-12024] #16640
  • Restore method signature for ViewControllerRegistration.setViewName [SPR-12016] #16632
  • NPE in Elvis Expression (ExitTypeDescriptor null) [SPR-12014] #16630
  • ThymeleafViewResolver not used by Spring 4.1 resulting in "circular view path" error [SPR-12013] #16629
  • Spring 4.1 schema issues [SPR-12011] #16627

📔 Documentation

  • Update references to RFC 2616 [SPR-12067] #16683
  • Improve documentation for using "." vs "/" as separators with STOMP/WebSocket messaging [SPR-12007] #16623
  • Add documentation for Java SockJS client [SPR-12006] #16622
  • Enrich Spring reference documentation (Websocket Support section) with details on how to filter messages [SPR-11952] #16568
  • No messaging module overview in the 2.2. Modules section [SPR-11847] #16466
  • Document how to use custom @Cacheable annotation with AspectJ [SPR-11503] #16128
  • Create an epub version of the Spring framework reference [SPR-11167] #15793
  • Doc: Spring MVC and the most 'specific' @RequestMapping URL pattern [SPR-10576] #15205
  • Explicitly mention proper URL-escaping in RestTemplate, UriTemplate, and UriComponents API Javadoc [SPR-10497] #15130
  • Documentation does not explain how @Cacheable and @CacheEvict behave in a multi-threaded environment [SPR-9588] #14222
  • [doc] CSRF prevention support in spring form controller [SPR-6125] #10793

4.1 RC1 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • AnnotationUtils should use threadsafe ConcurrentMap (contention) [SPR-12878] #17476
  • Customize concurrency per JMS listener [SPR-11988] #16604
  • DefaultBeanDefinitionDocumentReader should ignore the 'profile' attribute for custom namespaces [SPR-11975] #16591
  • Add ability to check specific error on field within Spring MVC test framework [SPR-11971] #16587
  • Support JMS 2.0's shared consumers in message listener containers [SPR-11969] #16585
  • Add hooks in spring-messaging for Spring Security [SPR-11966] #16582
  • Add AppCacheResourceTransformer for HTML5 offline applications [SPR-11964] #16580
  • Ordering of MessageConverters in AbstractMessageBrokerConfiguration [SPR-11961] #16577
  • SQLExceptionTranslators do not reliably translate QueryTimeoutException [SPR-11959] #16575
  • Reduce PlatformTransactionManager lookups in TransactionAspectSupport [SPR-11954] #16570
  • Optimize logging at different levels with WebSocket/Messaging [SPR-11943] #16560
  • Add support for caching destination resolver [SPR-11939] #16556
  • Support for Types.NCLOB in SqlLobValue to simplify use with NamedParameterJdbcTemplate. [SPR-11938] #16555
  • Support for argument-resolvers and return-value-handlers in MVC namespace [SPR-11927] #16545
  • Seamless support for Groovy bean definitions mixed with XML bean definitions [SPR-11924] #16542
  • @Async Supporting ListenableFuture [SPR-11909] #16528
  • Introduce @SqlConfig for common SQL script configuration [SPR-11896] #16515
  • Provide lock free access to BeanFactory methods by calling BF methods on the AbstractApplicationContext instance directly [SPR-11863] #16482
  • ServletUriComponentsBuilder should consider X-Forwarded-Host [SPR-11855] #16474
  • Add HTTP status code 308 Permanent Redirect [SPR-11854] #16473
  • Add missing HandshakeInterceptor configuration to WebSocket config [SPR-11845] #16464
  • HttpInvokerProxyFactoryBean and co do not reliably expose correct type when declared via @Bean [SPR-11842] #16461
  • Support for java.util.Optional with @Inject (a la @Autowired's required=false) [SPR-11833] #16452
  • Support for java.util.Optional as a @RequestParam [SPR-11829] #16448
  • MarshallingView does not support JAXBElement value by default [SPR-11827] #16446
  • Extend MockRestServiceServer to support AsyncRestTemplate [SPR-11822] #16442
  • Make ListenableFuture lambda compliant [SPR-11820] #16440
  • MessageReceivingOperations returns 'null' if the payload cannot be converted [SPR-11817] #16437
  • Create a common interface for AnnotationConfigApplicationContext and AnnotationConfigWebApplicationContext [SPR-11814] #16434
  • Add events for subscribe/unsubscribe stomp commands [SPR-11813] #16433
  • Enhance ResourceHttpRequestHandler with ResourceTransformer strategy [SPR-11800] #16420
  • Expose current HttpServletResponse for autowiring [SPR-11795] #16416
  • Support Groovy markup templating in Spring MVC [SPR-11789] #16411
  • Support org.springframework.messaging.Message as an alternative to MessageCreator in the JMS support [SPR-11772] #16394
  • Allow configuration of path mapping options for websocket handler mapping (e.g. alwaysUseFullPath) [SPR-11771] #16393
  • Add SQL error code mapping for SAP HANA database [SPR-11770] #16392
  • @ComponentScan should get processed without @Configuration as well [SPR-11769] #16391
  • Move Spring Boot's YAML properties into the core framework. [SPR-11767] #16389
  • MockHttpServletRequest should not require setContent for non-null getInputStream() result [SPR-11764] #16386
  • Path matching options in MVC Java/XML config should apply to all handler mappings [SPR-11753] #16375
  • Provide builders for HttpEntity and ResponseEntity [SPR-11752] #16374
  • Make constants in HttpHeaders public [SPR-11749] #16371
  • Improve reconnect attemps option in DefaultMessageListenerContainer [SPR-11746] #16368
  • Expose STOMP/WebSocket monitoring info and internal stats [SPR-11739] #16361
  • Skip Java immutable objects in session when processing the accessed attributes [SPR-11738] #16360
  • Cacheable javadoc wrongly explains how cache keys are generated [SPR-11736] #16358
  • Auto-proxy creation should not consider GroovyObject as a user-specified interface [SPR-11715] #16337
  • Introduce isAnnotation() in ClassMetadata API [SPR-11711] #16333
  • Add support of @SendTo for JMS listeners [SPR-11707] #16329
  • Detect default JmsListenerContainerFactory automatically [SPR-11706] #16328
  • Add support for @RequestMapping method return values of type ListenableFuture [SPR-11695] #16317
  • Cannot add script after setting scripts in ResourceDatabasePopulator [SPR-11691] #16313
  • Assert preconditions in ResourceDatabasePopulator [SPR-11690] #16312
  • SchedulerFactoryBean should support non-durable jobs as well [SPR-11689] #16311
  • Expose Spring MVC handled exception as request attribute when no view rendering is required [SPR-11686] #16309
  • Allow use of "." as path separator in @MessageMapping methods and in simple broker [SPR-11660] #16283
  • Use javax.annotation.Priority as an alternative for @Order [SPR-11639] #16262
  • Introduce execute(DataSource) in ResourceDatabasePopulator [SPR-11629] #16252
  • Relax websocket-enabled attribute on websocket:sockjs [SPR-11624] #16247
  • CglibAopProxy needs to detect package-visible methods when defined in a different ClassLoader [SPR-11618] #16241
  • Create a synchronous SettableListenableFuture implementation [SPR-11614] #16237
  • JdbcTemplate should support JDBC 4.1 getObject(columnIndex, type) [SPR-11600] #16223
  • Support RECEIPT frame on disconnect [SPR-11599] #16222
  • Exception handling with SimpleApplicationEventMulticaster [SPR-11551] #16176
  • Add supp...
Read more