Skip to content

Releases: spring-projects/spring-framework

4.2 RC1 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • @SendTo does not get converter applied when returning Message [SPR-13124] #17715
  • Implement hashCode() for synthesized annotations [SPR-13066] #17658
  • Implement equals() for synthesized annotations [SPR-13065] #17657
  • Implement toString() for synthesized annotations [SPR-13064] #17656
  • Introduce putIfAbsent() in AnnotationAttributes [SPR-13060] #17652
  • No possible matches for invalid field access in DirectFieldAccessor [SPR-13053] #17645
  • mvcUrl is always rendering scheme+host+port, that should be optional only when absolute link is needed [SPR-13045] #17637
  • DataBinder should use ConversionService if PropertyEditor cannot produce required type [SPR-13042] #17634
  • Ability to prefix each RestTemplate request using some kind of UriPrefixingClientHttpRequestFactory [SPR-13035] #17627
  • LocaleChangeInterceptor not protected against CSRF [SPR-13032] #17624
  • Document "present" terminology in AnnotationUtils [SPR-13030] #17623
  • Provide access to the return type in MethodMetadata [SPR-13024] #17615
  • Destroy callback cannot be disabled for AutoCloseable beans [SPR-13022] #17613
  • Harmonize default converters with available editors [SPR-13020] #17611
  • Avoid eager error message formatting in pre-condition checks [SPR-13007] #17599
  • Introduce AopTestUtils in spring-test [SPR-13005] #17597
  • Eliminate inspection of meta-annotations on Java annotations [SPR-12989] #17580
  • NoHandlerFoundException message should not contain all headers [SPR-12984] #17575
  • Automatically register Jackson's JDK 8 module when available [SPR-12983] #17574
  • ShallowEtagHeaderFilter breaks SockJS and HTTP streaming async responses [SPR-12960] #17552
  • Using StandardWebSocketClient it's not possible to customize ClientEndpointConfig before it's passed to WebSocketContainer.connectToServer method [SPR-12955] #17547
  • Default RequestPostProcessor should be executed first [SPR-12945] #17538
  • Autowiring against a closed ApplicationContext should consistently fail [SPR-12932] #17525
  • Spring Performance Optimization, Comparing Classes [SPR-12926] #17519
  • Allow for marshalling the messaging Message payload with an user defined marshaller [SPR-12912] #17511
  • Configure reply type via JmsListenerContainerFactory [SPR-12911] #17510
  • @Configuration enhancer does not throw proper exception in case of mismatched @Bean method [SPR-12905] #17504
  • MVC should respect @ResponseStatus on exceptions during mapping [SPR-12903] #17502
  • Revisit "ApplicationEventMulticaster not initialized" behavior for early event publication scenarios [SPR-12902] #17501
  • Support expression in @SendTo for JMS endpoints [SPR-12899] #17498
  • Improve exception message in case of incomplete Caching configuration. [SPR-12898] #17497
  • ResourceHttpMessageConverter always returns "application/octet-stream" Content-Type [SPR-12894] #17493
  • OkHttp implementations of ClientHttpRequestFactory / AsyncClientHttpRequestFactory [SPR-12893] #17492
  • Better exception message for missing @RequestBody method parameter [SPR-12888] #17486
  • Support 'selector' header for subscriptions with SimpleBrokerMessageHandler [SPR-12884] #17482
  • Support injecting resource as Reader [SPR-12876] #17474
  • Improve handling of JDK dynamic proxies in DefaultAopProxyFactory. [SPR-12870] #17468
  • CookieGenerator.removeCookie doesnt support secure field [SPR-12865] #17463
  • MethodValidationPostProcessor could be more open to extension [SPR-12863] #17461
  • Indeterministic UnsatisfiedServletRequestParameterException#paramConditions [SPR-12854] #17452
  • Provide Access to Spring WebSocket's Configured PathMatcher [SPR-12845] #17443
  • add support of xlsx format to JasperReportsMultiFormatView [SPR-12843] #17441
  • HttpSessionHandshakeInterceptor's getSession(request) [SPR-12840] #17438
  • Introduce database-name attribute in <jdbc:embedded-database /> [SPR-12835] #17432
  • Allow <jdbc:embedded-database /> to be declared as an anonymous bean [SPR-12834] #17431
  • HTTP Streaming Directly to the OutputStream [SPR-12831] #17428
  • HttpComponentsClientHttpRequestFactory should not depend on CloseableHttpClient [SPR-12826] #17423
  • Add setAutoStartup(boolean) to AbstractJmsListenerContainerFactory [SPR-12824] #17421
  • Make ReflectionUtils.doWithMethods work on Java 8 default interface methods [SPR-12822] #17419
  • On CONNECT and external broker is not available, StompBrokerRelayMessageHandler should return ERROR frame [SPR-12820] #17417
  • Support a customizable FieldError creation at SpringValidatorAdapter [SPR-12819] #17416
  • Provide an option for trailing slash for AbstractUrlHandlerMapping like RequestMappingHandlerMapping [SPR-12818] #17415
  • Support SpEL in bean class names [SPR-12817] #17414
  • SubProtocolWebSocketHandler should check is session is open before adding it to its map [SPR-12812] #17409
  • SpEL's ReflectiveMethodResolver should use distance computation by default [SPR-12808] #17405
  • @Order annotations not consistently honored within DispatcherServlet and other parts of the framework [SPR-12806] #17403
  • Make initDirectFieldAccess work with array, List and Map [SPR-12805] #17402
  • Support for named parameters in SimpleJdbcCall [SPR-12801] #17398
  • Allow use of MvcUriComponentsBuilder independent of Servlet request lifecycle [SPR-12800] #17397
  • Support for Transport connectivity check in JavaMailSender [SPR-12799] #17396
  • TypeDescriptor should support arbitrary levels of meta-annotations [SPR-12793] #17390
  • SpEL: reduce restrictions on compiling mathematical expressions [SPR-12789] #17386
  • UrlTag mishandles foreign root context URIs [SPR-12782] #17380
  • Re-allow handling empty request body [SPR-12778] [#17376](https://github.com/spring-projects/spring-fr...
Read more

4.1.6 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • TcpConnection should extend java.io.Closeable [SPR-12849] #17447
  • Ignore null in HeadersBuilder#headers [SPR-12792] #17389
  • RestTemplate logging for 404 status code [SPR-12760] #17357
  • Support @NumberFormat as a meta-annotation [SPR-12743] #17340

🪲 Bug Fixes

  • Exception cache resolver shouldn't be mandatory [SPR-12850] #17448
  • CacheLoader is ignored as of Guava 11 [SPR-12842] #17440
  • ConcurrentModificationException in ConfigurationClassParser.processDeferredImportSelectors [SPR-12838] #17436
  • There is no spring-beans.dtd file inside of the spring-beans-4.1.5.RELEASE jar [SPR-12836] #17433
  • Thread contention in HandlerMethod due to unnecessary BeanFactory.getType call [SPR-12832] #17429
  • DefaultManagedAwareThreadFactory's non-JNDI fallback leads to StackOverflowError [SPR-12830] #17427
  • X-Forwarded-Proto with comma separated list causes incorrect scheme [SPR-12816] #17413
  • X-Forwarded-Port with Comma Separated List Not Able to be Parsed in Spring 4.1.x [SPR-12813] #17410
  • Not reusable input stream in ContentCachingRequestWrapper [SPR-12810] #17407
  • Exception not thrown by OnFailure() when using ListenableFutureCallback [SPR-12797] #17394
  • StandardMultipartHttpServletRequest.StandardMultipartFile not serializable [SPR-12795] #17392
  • Regression in 4.1: UnsatisfiedDependencyException because a prototype-scoped FactoryBean is unexpectedly instantiated by getTypeForFactoryBean() [SPR-12786] #17383
  • ObjectToOptionalConverter wraps a source Optional<?> to the new one [SPR-12785] #17382
  • LoadTimeWeavingConfiguration should not rely on private field injection [SPR-12776] #17374
  • Regression in 4.1.5: UriComponentsBuilder.fromHttpRequest sets port to 80 i.s.o nothing/443 [SPR-12771] #17368
  • GroovyBeanDefinitionReader does not fully support XML config files [SPR-12769] #17366
  • XML config isn't fully supported for web integration tests if Groovy is on the classpath [SPR-12768] #17365
  • EncodedResource does not include charset in equals() implementation [SPR-12767] #17364
  • ScriptUtils and ScriptStatementFailedException confuse lines and statements [SPR-12752] #17349
  • Specified MVC resource at root level not considered "under location" [SPR-12747] #17344
  • Regression in 4.1.5: Alternative @Bean declarations with same primary bean name do not work anymore [SPR-12744] #17341
  • Deadlock publishing event while creating listener bean [SPR-12739] #17336
  • MockMvc PrintResultHandler asserts before result is set [SPR-12735] #17332

📔 Documentation

  • Consider rewording ack modes on the listener container javadocs [SPR-12705] #17302

4.1.5 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • MessageHeaderAccessor.getContentType() should get deal with String value too, rather than rely only casting to MimeType [SPR-12730] #17327
  • Add possibility to set supportedMimeTypes in MappingJackson2MessageConverter [SPR-12724] #17321
  • Open up TestPropertySourceUtils for public consumption [SPR-12721] #17318
  • Preserve ordering of inlined properties in @TestPropertySource [SPR-12710] #17307
  • BeanWrapper should auto-grow arrays on indexed set attempt as well [SPR-12706] #17303
  • Add same origin support to SockJS and WebSocket [SPR-12697] #17294
  • Allow MBeanExporter's excludedBeans to be configured additively [SPR-12686] #17285
  • Change SockJS default to allowing same origin only [SPR-12685] #17284
  • Allow YamlProcessor subclasses to provide the Yaml instance that's used [SPR-12671] #17270
  • Support @Configuration as a meta-annotation in the TestContext framework [SPR-12659] #17259
  • Use UUID.randomUUID() for session id's in SockJsClient [SPR-12658] #17258
  • Add the ability to turn off automatic derivation of Aliases for custom parsers. [SPR-12643] #17244
  • Allow Jackson2ObjectMapperBuilder configuration to override the well-known modules' configuration [SPR-12634] #17235
  • ResourceUrlEncodingFilter fails when Thymeleaf and the "/**" resource pattern is used [SPR-12630] #17231
  • Enable reuse of DefaultActiveProfilesResolver [SPR-12611] #17212
  • Consider caching the compiled pattern in OperatorMatches [SPR-12610] #17211
  • AbstractRequestLoggingFilter and CommonsRequestLoggingFilter log level checks [SPR-12609] #17210
  • Don't use Exception for normal behavior in org.springframework.core.annotation.AnnotationUtils.getValue [SPR-12604] #17205
  • Support specifying TimeZone in Jackson2ObjectMapperFactoryBean [SPR-12594] #17195
  • RestTemplate - support response mapping to entity with potentially empty response body. [SPR-8016] #12671
  • AbstractRequestLoggingFilter should log actual body even after consuming request parameters on Tomcat 6 [SPR-7913] #12568

🪲 Bug Fixes

  • Stomp error when PongMessage is passed to StompSubProtocolHandler [SPR-12728] #17325
  • Unhandled websocket error when unsolicited pong frame with zero length payload received from IE11 [SPR-12727] #17324
  • ServletUriComponentsBuilder#initFromRequest can cause NPE [SPR-12723] #17320
  • WebSocketTransportHandler passes Collections.<String, Object>emptyMap() to HandshakeHandler [SPR-12716] #17313
  • @Scheduled no longer works in case of multiple proxied target classes implementing the same interface [SPR-12709] #17306
  • Conditions on an overriding bean method effectively get ignored [SPR-12694] #17292
  • ConcurrentModificationException thrown while iterating over bean definition names in DefaultListableBeanFactory#getBeansWithAnnotation(Class<? extends Annotation> annotationType) [SPR-12688] #17286
  • ConcurrentModificationException in SimpleBrokerMessageHandler [SPR-12665] #17264
  • AbstractSockJsService.checkAndAddCorsHeaders fails for same origin requests when setAllowedOrigins is set [SPR-12660] #17260
  • ResourceUrlProvider does not keep resource handlers ordered [SPR-12647] #17248
  • During startup scheduled tasks are driven earlier than before causing problems with Spring Batch [SPR-12641] #17242
  • CssLinkResourceTransformer throws Exception on links that start with // [SPR-12632] #17233
  • PathResourceResolver.isResourceUnderLocation does not handle relative paths correctly [SPR-12624] #17225
  • Netty4ClientHttpRequestFactory always allocates "maxRequestSize" bytes for each request [SPR-12623] #17224
  • Exception with JSON serialization in ResponseBodyAdviceChain when debug logging is on [SPR-12616] #17217
  • Handle exceptions properly in SpringJUnit4ClassRunner [SPR-12613] #17214
  • Default value of mvc:redirect-view-controller context-relative attribute is not "true" [SPR-12607] #17208
  • ResourceUrlProvider should initialize only once [SPR-12592] #17193
  • ObjectToOptionalConverter should use Optional.ofNullable(…) instead of Optional.of(…) [SPR-12589] #17190
  • Regression in TransactionAspectSupport.determineTransactionManager(…) [SPR-12577] #17178

📔 Documentation

  • Documentation error in "SimpleJdbcInsert" section [SPR-12639] #17240

4.1.4 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Spring's JMX support can rely on native MXBean detection on Java 6+ [SPR-12574] #17175
  • Improve diagnostics when AnnotationJmxAttributeSource triggers an ArrayStoreException from Class.getAnnotation [SPR-12572] #17173
  • org.springframework.cache.aspectj.JCacheCacheAspect is missing from META-INF/aop.xml in spring-aspects [SPR-12571] #17172
  • PayloadArgumentResolver enforces Validator unnecessarily [SPR-12567] #17168
  • MockMvcBuilders should populate ServletContextAttribute WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE to enable view technologies use WebApplicationContextUtils.getRequiredWebApplicationContext(…) [SPR-12553] #17155
  • Configured RequestConfig in HttpClient gets overwritten by default [SPR-12540] #17144
  • Better implementation of showSql for EclipseLinkJpaVendorAdapter [SPR-12528] #17133
  • CacheAspectSupport 's generateKey method should not concatenate Strings [SPR-12527] #17132
  • Add DEBUG/INFO logging in AbstractBeanFactory.registerScope() [SPR-12519] #17124
  • Allow sending of binary WebSocket messages in StompSubProtocolHandler [SPR-12475] #17081
  • Improve Constructor Resolver Diagnostics [SPR-12543] #16975
  • Upgrade HttpComponentsHttpInvokerRequestExecutor to require Apache HttpComponents 4.3 [SPR-11113] #15739

🪲 Bug Fixes

  • Wrong TransactionManager selected when mixing @Transactional with and w/o qualifier [SPR-12606] #17207
  • Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167
  • VerifyError for compiled SpEL expression with primitive/reference type mix when using == [SPR-12557] #17159
  • AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
  • @SessionAttributes not populated when going directly to POST and redirecting while ignoreDefaultModelOnRedirect=true [SPR-12542] #17146
  • @Transactional qualifier is ignored by TransactionAspectSupport if default transaction manager is set [SPR-12541] #17145
  • Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
  • CollectionFactory should create empty EnumSets and EnumMaps [SPR-12533] #17138
  • @EnableMBeanExport exposes scoped proxies and their targets [SPR-12529] #17134
  • Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
  • Regression: SpEL expression with Arrays.asList and empty array [SPR-12522] #17127
  • AnnotationTransactionAspect retains reference to JpaTransactionManager from closed context [SPR-12518] #17123
  • HttpComponentsClientHttpRequestFactory does not set connection request timeout on request config [SPR-12166] #16780

📔 Documentation

  • Add TimeZone and ZoneId to list of supported method arguments [SPR-12575] #17176
  • Update documentation after SPR-3542 [SPR-12570] #17171
  • Add note to reference material about difference between XML destroy-method and @Bean destroyMethod behavior [SPR-12534] #17139
  • I can use ';' and EOL for delimiter of base-package attribute(component scan) [SPR-12523] #17128
  • Names of Maven Dependencies [SPR-12517] #17122

4.0.9 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Concurrent registration/iteration in PropertySourcesPropertyResolver [SPR-12428] #17034
  • Making it easier to replace "RequestMappingHandlerAdapter.handleInternal" [SPR-12460] #17065
  • NotReadablePropertyException should take causing exception as constructor argument [SPR-12467] #17073
  • Allow overriding InvocableHandlerMethod.invoke and/or ServletInvocableHandlerMethod.invokeAndHandle in subclasses [SPR-12484] #17090
  • Consistent bridge method handling in annotation post-processors [SPR-12495] #17101
  • Check the user for a SockJS request [SPR-12497] #17103
  • CacheAspectSupport 's generateKey method should not concatenate Strings [SPR-12527] #17132
  • PayloadArgumentResolver enforces Validator unnecessarily [SPR-12567] #17168
  • Improve diagnostics when AnnotationJmxAttributeSource triggers an ArrayStoreException from Class.getAnnotation [SPR-12572] #17173
  • Spring's JMX support can rely on native MXBean detection on Java 6+ [SPR-12574] #17175

🪲 Bug Fixes

  • Using TransactionManagementConfigurer causes StackOverflowError that results in NoClassDefFoundError for FatalBeanException [SPR-10787] #15413
  • webjar stops working [SPR-12432] #17038
  • Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
  • NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
  • Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
  • AnnotationAttributesReadingVisitor.doVisitEnd doesn't handle possible null return from AnnotationUtils.getAnnotations [SPR-12493] #17099
  • SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
  • Base packages referenced from @ControllerAdvice must contain at least one Controller [SPR-12506] #17111
  • Synchronize message sending in HTTP SockJS sessions with request initialization [SPR-12516] #17121
  • Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
  • Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
  • AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
  • Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167

📔 Documentation

  • Star character interpreted as bold expression in generated documentation [SPR-12456] #17061
  • Misleading documentation for SqlRowSet [SPR-12476] #17082
  • I can use ';' and EOL for delimiter of base-package attribute(component scan) [SPR-12523] #17128
  • Update documentation after SPR-3542 [SPR-12570] #17171
  • Add TimeZone and ZoneId to list of supported method arguments [SPR-12575] #17176

3.2.13 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ New Features

  • Consistent bridge method handling in annotation post-processors [SPR-12495] #17101

🪲 Bug Fixes

  • Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
  • webjar stops working [SPR-12432] #17038
  • Introspection with BeanUtils started failing against java.awt.Window [SPR-12434] #17039
  • NPE in org.springframework.core.MethodParameter.getParameterName (possible race condition) [SPR-12453] #17058
  • Unable to initialize WebAsyncTask with executorName [SPR-12457] #17062
  • SpEL: problem with static methods conflicting with instance methods [SPR-12502] #17107
  • Prototype with changing bean class does not get populated with dependencies after type switch [SPR-12526] #17131
  • Performance - hashCode method of AbstractFallbackTransactionAttributeSource.DefaultCacheKey doesn't take targetClass into account [SPR-12536] #17141
  • AbstractApplicationEventMulticaster "lost" application listener [SPR-12545] #17148
  • Duplicated interceptors in HandlerExecutionChain after intermediate getInterceptors() call [SPR-12566] #17167
  • When use the same configuration annotation of javaconfig, does not work on spring 3.2.12 [SPR-12442] #17047
  • Embedded derby database uses derby.log [SPR-12437] #17042

📔 Documentation

  • Misleading documentation for SqlRowSet [SPR-12476] #17082
  • Update documentation after SPR-3542 [SPR-12570] #17171

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