Skip to content

Releases: spring-projects/spring-framework

4.2.8 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998
  • Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
  • @RequestMapping consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021
  • UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
  • Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
  • Avoid repeated getParameterType calls for setNull with Oracle 12c driver [SPR-14574] #19143
  • Improve performance of assertion in StompSubProtocolHandler [SPR-14624] #19191
  • Protect against getParameterType cursor leak with Oracle 12c JDBC driver [SPR-14629] #19196
  • Improve performance of StompCommand.getMessageType() [SPR-14636] #19203
  • CommonsMultipartResolver should explicitly convert FileSizeLimitExceededException next to SizeLimitExceededException [SPR-14638] #19204
  • Default async request timeout handling does not work with Jetty 9.x [SPR-14669] #19233
  • Better Exception Message for JMS Jackson Converter Error [SPR-14672] #19236
  • AbstractPollingMessageListenerContainer's workaround for Tibco causes performance delays during ems failover [SPR-14697] #19261
  • ScriptTemplateView should check template resource [SPR-14729] #19294

🪲 Bug Fixes

  • Constructor sets the source incorrectly in org.springframework.beans.PropertyValue [SPR-8337] #12985
  • ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977
  • Regression: Insert statement fails with inconsistent datatypes on Oracle 12c driver [SPR-14191] #18764
  • SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
  • MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
  • CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
  • Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
  • MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
  • ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
  • LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
  • Do not fail with a circular @Import error caused by an @ComponentScan [SPR-14517] #19086
  • StackOverflowError for advisor search against factory-bean reference to FactoryBean [SPR-14551] #19119
  • ArrayIndexOutOfBoundsException in MethodBasedEvaluationContext [SPR-14554] #19122
  • SockJS heartbeat is causing application send Message to fail similar to (SPR-14356) [SPR-14564] #19133
  • StompSubProtocolHandler responds with ERROR (Session closed.) on DISCONNECT when using SimpleBrokerMessageHandler [SPR-14568] #19137
  • Fix assertions in StompHeaderAccessor [SPR-14625] #19192
  • ResolvableType for a raw type is not assignable to generic types of the same class [SPR-14648] #19214
  • TypeConverterSupport does not propagate custom exceptions anymore [SPR-14661] #19225
  • NPE during websocket disconnect [SPR-14703] #19268
  • StringUtils.parseLocaleString(): does not parse locale string in java 7 for Serbian (Latin) [SPR-14718] #19283
  • exception during websocket client close [SPR-14721] #19286

📔 Documentation

  • NoHandlerFoundException is mapped to 404 twice [SPR-14598] #19167

5.0 M1 Release

17 Jan 14:18
Compare
Choose a tag to compare

⭐ New Features

  • Revise encoding steps towards use of JDK Charset and StandardCharsets [SPR-14492] #19061
  • Avoid deprecated Class.newInstance in favor of constructor-based instantiation [SPR-14486] #19055
  • Drop mock.staticmock package from spring-aspects [SPR-14485] #19054
  • Resource.isFile() and JAF MediaTypeFactory [SPR-14484] #19053
  • Comprehensive Servlet 3.1 support in spring-web and spring-test [SPR-14467] #19036
  • Support suppressed exceptions in the TestContext framework [SPR-14459] #19028
  • Introduce Supplier message support in org.springframework.util.Assert [SPR-14450] #19020
  • Core Spring interfaces declared with Java 8 default methods and @FunctionalInterface markers [SPR-14432] #19003
  • Reactive web module [SPR-14161] #18733
  • HTTP cookie abstraction [SPR-14160] #18732
  • Composition adapters for Reactive Streams [SPR-14159] #18731
  • Reactive serialization & deserialization [SPR-14156] #18728
  • ByteBuffer abstraction [SPR-14155] #18727
  • Reactive Web client [SPR-14154] #18726
  • Reactive server web support [SPR-14153] #18725
  • Reactive client and server HTTP adapters [SPR-14152] #18724
  • Introduce support for creating a MethodParameter from a Java 8 Parameter [SPR-14055] #18627
  • XMLUnit 2.x support [SPR-14043] #18615
  • Better synchronization in ConcurrentMapCache [SPR-13810] #18383
  • ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4 [SPR-13589] #18166
  • Introduce support for JUnit 5 in the TestContext framework [SPR-13575] #18151
  • Validate method parameter index via Java 8 Method.getParameterCount() [SPR-13456] #18036
  • Introduce before/after test execution callbacks in the TestContext framework [SPR-4365] #9043

🪲 Bug Fixes

  • ReactorClientHttpConnector assumes that URI.port is valid [SPR-14477] #19046
  • Misleading exception message for invalid MethodParameter instance [SPR-14466] #19035

📔 Documentation

  • Move "What's New" reference manual chapter to the wiki [SPR-14449] #19019

4.3.2 Release

17 Jan 14:22
Compare
Choose a tag to compare

⭐ New Features

  • Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
  • Cache limit for destination cache in SimpleBrokerMessageHandler can't be altered [SPR-14516] #19085
  • HeaderContentNegotiationStrategy does not support multiple Accept headers [SPR-14506] #19075
  • Non-helpful NoSuchBeanDefinitionException rather than BeanNotOfRequiredTypeException due to creation order [SPR-14504] #19073
  • DataSource adapters should expose setCatalog/setSchema next to setUsername/setPassword [SPR-14501] #19070
  • GenericSqlQuery configured with RowMapper instance [SPR-14489] #19058
  • SerializableTypeWrapper should reobtain type accessors from declaring interface [SPR-14487] #19056
  • Avoid dependency on WebUtils for extracting file extension [SPR-14479] #19048
  • Workaround for Hibernate bug: setCurrentTenantIdentifierResolver not respected [SPR-14476] #19045
  • Missing tests for async request handling with StreamingResponseBody [SPR-14456] #19025
  • Hibernate5 LocalSessionFactoryBean does not translate javax.persistence exceptions [SPR-14455] #19024
  • UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
  • @RequestMapping consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021
  • AnnotationMetadataReadingVisitor does not honour @AliasFor [SPR-14437] #19008
  • Add PathEditor to enable conversion to java.nio.file.Path [SPR-14436] #19007
  • Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
  • When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998

🪲 Bug Fixes

  • Do not fail with a circular @Import error caused by an @ComponentScan [SPR-14517] #19086
  • Transaction manager bean in TransactionInterceptor retained after JUnit test class completes [SPR-14511] #19080
  • LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
  • ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
  • Mis-proxying of Mockito mock and poor diagnostics for type mismatch on proxy injection [SPR-14478] #19047
  • NPE while try to use abstract beans with optional properties [SPR-14474] #19043
  • Jackson 2.6.x -> 2.7 deserialize generic fails when calling Spring controller [SPR-14470] #19039
  • MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
  • Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
  • CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
  • MultipartResolutionDelegate in Servlet 2.5 environments not working correctly [SPR-14461] #19030
  • Flush exception translation not working anymore with Hibernate 5.2 [SPR-14457] #19026
  • MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
  • Regression: TestContextManager no longer tracks after-class exception with log level lower than WARN [SPR-14447] #19017
  • NoOpCacheManager and @Cacheable(sync=true) [SPR-14445] #19015
  • SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
  • HibernateTemplate not binary-compatible with Hibernate 5.0/5.1's Query type [SPR-14425] #18996
  • ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977

📔 Documentation

  • Documentation still favoring velocity but it is deprecated in 4.3 [SPR-14460] #19029

4.3.1 Release

17 Jan 14:22
Compare
Choose a tag to compare

⭐ New Features

  • @MessageExceptionHandler should match cause as well (analogous to @ExceptionHandler) [SPR-14424] #18995
  • Defensively access deprecated AbstractHttpClient class from Apache HttpComponents [SPR-14422] #18993
  • Convert comma-separated string into list of classes analogous to existing support for class array [SPR-14415] #18986
  • Add BasicAuthorizationInterceptor [SPR-14412] #18983
  • Enforce UTF-8 encoding in SseEmitter [SPR-14407] #18978
  • MvcUriComponentsBuilder should not include empty query parameters in build URI [SPR-14405] #18976
  • RequestMappingInfoHandlerMapping.handleNoMatch throws 415 when it should throw 406 [SPR-14397] #18969
  • Improve error handling when resolving message payloads [SPR-14394] #18967
  • Improve warn logging in AbstractHandlerExceptionResolver [SPR-14392] #18965
  • STOMP 1.1 protocol support for client [SPR-14391] #18964
  • Multiple load-time-weaver elements cause repeated addition of AspectJ transformer [SPR-14373] #18946
  • ForwardedHeaderFilter should support case insensitive header name [SPR-14372] #18945
  • Revise PropertySourcesPropertyResolver's default logging and customizability [SPR-14370] #18943
  • @WebAppConfiguration fails with ServletServerContainerFactoryBean in the ApplicationContext [SPR-14367] #18939
  • ReflectionTestUtils should defensively invoke toString() on target objects [SPR-14363] #18935
  • Provide API to expose Spring MVC's ability to match requests [SPR-14321] #18893
  • Add exposeProxy to @EnableAspectJAutoProxy [SPR-10454] #15087

🪲 Bug Fixes

  • Return type implementing DeferredResult is rejected with exception [SPR-14423] #18994
  • Cache infrastructure using AspectJ is not properly configured [SPR-14413] #18984
  • Possible issue with handling http method OPTIONS [SPR-14410] #18981
  • Regression: DefaultCorsProcessor ignores already present Access-Control-Allow-Origin header [SPR-14406] #18977
  • InjectionPoint not propagated by AutowiredAnnotationBeanPostProcessor's cached argument resolution [SPR-14400] #18971
  • JDBC Connection to reset not identical to originally prepared Connection with Hibernate 5.2 [SPR-14393] #18966
  • @JmsListener endpoint @Payload resolution fails due to interplay of new LazyResolutionMessage and MessagingMessageConverterAdapter [SPR-14389] #18962
  • Deadlock while creating a new thread on bean initialization with transactional code invocation [SPR-14388] #18961
  • HEAD/GET in MVC not fully backward-compatible [SPR-14383] #18956
  • Background initialization for Hibernate SessionFactory breaks transaction management [SPR-14379] #18952
  • Regression: Static JS files served as 'application/octet-stream' instead of 'application/javascript' [SPR-14368] #18940
  • NoSuchMethodError for SessionFactoryImplementor.getProperties() with Hibernate 5.1 [SPR-14365] #18937
  • Hibernate 5 SpringSessionSynchronization calls Session.getFlushMode() directly instead of using SessionFactoryUtils.getFlushMode(session) [SPR-14364] #18936
  • Failure to resolve @RequestMapping method arguments in Servlet 2.5 environments [SPR-14358] #18930
  • SockJs heartbeat during message send closes socket [SPR-14356] #18928

📔 Documentation

  • Cache documentation does not mention "sync" attribute. [SPR-14366] #18938
  • Migrate to Asciidoctor 1.5 syntax [SPR-14355] #18927
  • Small issues with Spring Framework Code Style Guide [SPR-14352] #18924
  • Ambiguous sentence in the cache documentation [SPR-14399] #18017

4.2.7 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • SimpleBrokerMessageHandler makes an assertion about the type of the MessageHeaderAccessor, but doesn't seem to care [SPR-14279] #18851
  • Spring Web should process requests with empty/invalid mime type [SPR-14309] #18881
  • Consistent Error handling in MessageChannel implementations [SPR-14323] #18895
  • Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
  • Improve error handling when resolving message payloads [SPR-14394] #18967

🪲 Bug Fixes

  • Meta-@Conditional lookup does not work consistently with ASM [SPR-14257] #18829
  • Memory leak on STOMP broker connections that fail before heartbeats start [SPR-14266] #18838
  • markBeanAsCreated does not clear merged bean definition in a thread-safe fashion [SPR-14269] #18841
  • @Bean not detected in extended interface [SPR-14288] #18860
  • StringIndexOutOfBoundsException when calling BeanWrapperImpl.setPropertyValue("[']", "foobar") [SPR-14293] #18865
  • SettableListenableFuture.setException(Throwable) doesn't work for Error [SPR-14298] #18870
  • Cannot put tiles:definition inside tiles:putAttribute [SPR-14311] #18883
  • After-completion callback not triggered for custom Throwable subclass [SPR-14329] #18901
  • EventListenerMethodProcessor resolves classes (by MethodIntrospector) of lazy beans causing NoClassDefFoundError [SPR-14330] #18902
  • Race condition in handling of @Lookup annotation [SPR-14333] #18905
  • AllEncompassingFormHttpMessageConverter ignores JAXB XML when Jackson used for JSON [SPR-14336] #18908
  • Different error codes on same formatter registered in different ways [SPR-14345] #18917
  • SockJs heartbeat during message send closes socket [SPR-14356] #18928
  • Deadlock while creating a new thread on bean initialization with transactional code invocation [SPR-14388] #18961
  • Cache infrastructure using AspectJ is not properly configured [SPR-14413] #18984
  • Return type implementing DeferredResult is rejected with exception [SPR-14423] #18994
  • NPE was occurred at WebUtils.isSameOrigin [SPR-14305] #18877
  • HtmlUnitRequestBuilder should decode request parameter names [SPR-14177] #18748

📔 Documentation

  • Reference Documentation: Why does not exist an XML configuration version for @Async? [SPR-14164] #18736
  • Ambiguous sentence in the cache documentation [SPR-14399] #18017

4.3 GA Release

17 Jan 14:22
Compare
Choose a tag to compare

⭐ New Features

  • CorsConfiguration checkHeaders wildcard ALL should allow matching empty strings header [SPR-14617] #19184
  • AsyncRestTemplate changes in SPR-13413 made its harder to detect Client/Server errors [SPR-14353] #18925
  • Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
  • SpringHandlerInstantiator should support all HandlerInstantiator-provided factory methods [SPR-14347] #18919
  • Caching annotation on interface are ignored when cglib proxies are used [SPR-14343] #18915
  • FormHttpMessageConverter should use configured charset (by default UTF-8) for "text-plain" MIME part conversion as well [SPR-14338] #18910
  • Jackson2ObjectMapperBuilder/FactoryBean should accept deserializers by handled type as well [SPR-14337] #18909
  • Support for Hibernate ORM 5.2 [SPR-14327] #18899
  • Consistent Error handling in MessageChannel implementations [SPR-14323] #18895
  • Allow constructor injection at CompositeDatabasePopulator [SPR-14313] #18885
  • AcceptHeaderLocaleResolver should allow to define a default Locale [SPR-14312] #18884
  • Spring Web should process requests with empty/invalid mime type [SPR-14309] #18881
  • MockRestServiceServerBuilder cannot be cached [SPR-14306] #18878
  • negating specific media type in RequestMapping causes requests with no Accept header to fail [SPR-14299] #18871
  • All SockJS fallback options fail if request.getRemotePort() is not forwarded by proxy [SPR-14295] #18867
  • @ExceptionHandler should match cause as well (e.g. for exception thrown from argument formatter) [SPR-14291] #18863
  • Poor comparison for ContentRequestMatchers#bytes [SPR-14281] #18853
  • SimpleBrokerMessageHandler makes an assertion about the type of the MessageHeaderAccessor, but doesn't seem to care [SPR-14279] #18851
  • Apply @SafeVarargs at MockRestRequestMatchers#header [SPR-14278] #18850
  • ForwardedHeaderFilter could support X-Forwarded-Prefix as well [SPR-14270] #18842
  • JettyWebSocketSession.send*Message() can throw Jetty-specific WebSocketException instead of IOException [SPR-14267] #18839
  • MockMvcWebConnection should update cookie manager with MockHttpServletResponse cookies [SPR-14265] #18837
  • Add database product name for SAP HANA [SPR-14261] #18833
  • DefaultPersistenceUnitManager.determineDefaultPersistenceUnitRootUrl fails when run from a shaded jar [SPR-14246] #18819
  • Add option to log headers to AbstractRequestLoggingFilter [SPR-14245] #18818
  • BeanPropertyRowMapper should use ConversionService for date-time support [SPR-13888] #18461
  • SpEl does not support conjunction (&&) and disjunction (||) logic [SPR-7652] #12308

🪲 Bug Fixes

  • Different error codes on same formatter registered in different ways [SPR-14345] #18917
  • AllEncompassingFormHttpMessageConverter ignores JAXB XML when Jackson used for JSON [SPR-14336] #18908
  • Race condition in handling of @Lookup annotation [SPR-14333] #18905
  • EventListenerMethodProcessor resolves classes (by MethodIntrospector) of lazy beans causing NoClassDefFoundError [SPR-14330] #18902
  • After-completion callback not triggered for custom Throwable subclass [SPR-14329] #18901
  • Headers were lost when returning a null StreamingResponseBody within a ResponseEntity [SPR-14315] #18887
  • ConcurrentMapCacheManager's storeByValue does not pick up ClassLoader [SPR-14314] #18886
  • Cannot put tiles:definition inside tiles:putAttribute [SPR-14311] #18883
  • SettableListenableFuture.setException(Throwable) doesn't work for Error [SPR-14298] #18870
  • @MatrixVariable Map<String, String> params [SPR-14294] #18866
  • StringIndexOutOfBoundsException when calling BeanWrapperImpl.setPropertyValue("[']", "foobar") [SPR-14293] #18865
  • @Bean not detected in extended interface [SPR-14288] #18860
  • Scheduled tasks aren't cancelled on ScheduledTaskRegistrar destruction anymore [SPR-14286] #18858
  • markBeanAsCreated does not clear merged bean definition in a thread-safe fashion [SPR-14269] #18841
  • Memory leak on STOMP broker connections that fail before heartbeats start [SPR-14266] #18838
  • Meta-@Conditional lookup does not work consistently with ASM [SPR-14257] #18829

📔 Documentation

  • Doc: Constructor injection of arrays and collections [SPR-14332] #18904
  • Improve reference documentation for Task Execution and Scheduling about bean scopes [SPR-14167] #18739
  • Reference Documentation: Why does not exist an XML configuration version for @Async? [SPR-14164] #18736
  • Document composed annotations for @RequestMapping in the reference manual [SPR-13995] #18568
  • Document composed annotations for web scopes in the reference manual [SPR-13994] #18567
  • Doc: @RestController works only with RequestMappingHandlerAdapter [SPR-13945] #18517
  • Document TestContext bootstrap strategy in the reference manual [SPR-11683] #16306
  • MultipartFilter documentation [SPR-11373] #16000

4.3 RC2 Release

17 Jan 14:22
Compare
Choose a tag to compare

⭐ New Features

  • SpEL Compiler: problems using primitives with instanceof operator [SPR-14250] #18823
  • Timeout problem with Spring and Atomikos [SPR-14239] #18812
  • Allow @Cacheable method to return java.util.Optional variant of cached value [SPR-14230] #18804
  • Add get/set-IfUnmodifiedSince, get/set-IfMatch methods on HttpHeaders [SPR-14228] #18802
  • Behavior of checkNotModified(String etag, long lastModifiedTimestamp) does not match HTTP recommendations [SPR-14224] #18798
  • Consistent handling of multi-valued headers in HttpHeaders [SPR-14223] #18797
  • Refactor HTTP Range support with a new ResourceRegion class [SPR-14221] #18795
  • ServletWebRequest.isEtagNotModified does not support commas and spaces in client ETags [SPR-14216] #18790
  • Support non-blocking receiveTimeout in AbstractPollingMessageListenerContainer [SPR-14212] #18786
  • ScriptTemplateView can't load web-app resources [SPR-14210] #18784
  • Support manual ACK and NACK in Stomp Client [SPR-14208] #18782
  • HttpSessionRequiredException should have a getter for 'expected session attribute' [SPR-14206] #18780
  • ResponseEntity should allow the usage of unassigned HTTP status codes [SPR-14205] #18779
  • PathMatchingResourcePatternResolver should not re-resolve root URLs [SPR-14202] #18776
  • @RequestHeader doesn't accept RFC-1123 for conversion to java.time.Instant [SPR-14201] #18775
  • DefaultMessageListenerContainer doesn't shutdown gracefully if long recovery interval is set [SPR-14200] #18774
  • Java 8 default methods not detected as bean properties [SPR-14198] #18772
  • Add text/markdown to MediaType [SPR-14192] #18765
  • Support test annotations on interfaces [SPR-14184] #18755
  • Support @BeforeTransaction and @AfterTransaction on interface default methods [SPR-14183] #18754
  • Let @Scheduled work with a non-void method how is possible with task:scheduled [SPR-14175] #18746
  • Rename MimeType's getCharSet() to getCharset() [SPR-14172] #18744
  • Improve failure metadata that is available from BeanInstantiationException [SPR-14166] #18738
  • RestTemplate: Support default urlVariables at template level [SPR-14147] #18719
  • Placeholder resolution for annotation attributes is not active by default [SPR-14140] #18712
  • Add method to TestPropertySourceUtils to add properties files directly to the environment [SPR-14131] #18703
  • Improve MimeTypeUtils to handle the case of only a delimiter passed [SPR-14124] #18696
  • Unable to define empty java.util.Optional bean in spring xml [SPR-14121] #18693
  • Possibility to configure a custom WebJarAssetLocator [SPR-14092] #18664
  • Proper load-time weaving support for Hibernate 5 [SPR-13886] #18459
  • AbstractAdvisorAutoProxyCreator should consistently detect package-visible methods [SPR-14174] #17890
  • @Scheduled methods in @Lazy beans are not scheduled [SPR-12872] #17470
  • Improve handling of missing JSF session in SessionScope [SPR-12402] #17010
  • ScheduledAnnotationBeanPostProcessor should unregister tasks on destruction of individual beans [SPR-12216] #16830
  • Detect LoadTimeWeaver bean when declared through @Bean method as well [SPR-10856] #15483

🪲 Bug Fixes

  • AntPathMatcher Regression for trimTokens=true [SPR-14247] #18820
  • CharacterEncodingFilter should have an option to avoid forcing encoding on responses [SPR-14240] #18813
  • Annotated class with @SendToUser overrides @SendTo on method [SPR-14238] #18811
  • Regression: Handler method detection reporting ambiguous methods for explicit HEAD mapping [SPR-14182] #18753
  • MockWebResponseBuilder can't handle null domain in cookie [SPR-14169] #18741
  • AntPathMatcher regression in 4.3 RC1 [SPR-14141] #18713

📔 Documentation

  • Add note constrain/restriction for task:scheduled about method signature such as @Scheduled [SPR-14195] #18768
  • Update Testing chapter regarding avoiding false positives with JPA [SPR-9032] #13671

4.2.6 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • Warn about non-static BeanDefinitionRegistryPostProcessor declarations on @Configuration classes [SPR-14234] #18808
  • ApplicationListenerDetector should prevent serialization of its ApplicationContext reference [SPR-14214] #18788
  • Avoid hard logging of WebApplicationInitializer classes [SPR-14213] #18787
  • three constructors in the org.springframework.expression.spel.ast package are not public [SPR-14181] #18752
  • MappingJackson2HttpMessageConverter should not always log a warning [SPR-14163] #18735
  • Print EhCache cache manager name when initializing [SPR-14110] #18682
  • AbstractStaxXMLReader should recognize standard features such as the string interning feature [SPR-14047] #18619
  • Prevent Quartz XSD from being fetched from the Internet [SPR-13706] #18281

🪲 Bug Fixes

  • AsyncResult calls SuccessCallback when it should call FailureCallback [SPR-14249] #18822
  • AbstractRequestLoggingFilter appends null query string [SPR-14244] #18817
  • Deadlock possible with AspectJ aspects and multi-threading [SPR-14241] #18814
  • DefaultLifecycleProcessor hangs on shutdown when stopping with internalJmsListenerEndpointRegistry [SPR-14233] #18807
  • Reactor2TcpClient does not remove TcpClient instances after connection closed [SPR-14231] #18805
  • Reactor2TcpClient leaks threads on shutdown [SPR-14229] #18803
  • SocketUtils fails to find a port when providing only two ports [SPR-14211] #18785
  • FastByteArrayInputStream.read returns incorrect result [SPR-14209] #18783
  • WebSocketMessageBrokerStats does not work unless SockJS is enabled with WebSocket XML namespace [SPR-14190] #18763
  • NPE thrown when calling methods with an empty @Caching annotation [SPR-14162] #18734
  • SimpleTransactionScope does not suspend and resume its scoped objects [SPR-14148] #18720
  • Regression: If-Modified-Since value of zero not accepted anymore [SPR-14144] #18716
  • WebSocketSessionDecorator.sendMessage does not delegate [SPR-14139] #18711
  • AbstractWebSocketSession.sendMessage race condition [SPR-14138] #18710
  • Java boolean is not handled correctly when used with Oracle JDBC driver [SPR-14116] #18688
  • TransportHandlingSockJsService.scheduleSessionTask() doesn't log removed sessions [SPR-14111] #18683
  • Wrong detection of event type on ApplicationListener<> when using lambdas (ClassCast Exception) [SPR-14109] #18681
  • SockJS / XHR Polling does not reset connection for heartbeat [SPR-14107] #18679
  • @JmsListener with autoStartup=false will never start [SPR-14105] #18677
  • @RequestHeader HttpHeaders fails with NPE against null header value [SPR-14091] #18663
  • Type annotations cause ArrayIndexOutOfBoundsException in ASM ClassReader [SPR-14089] #18661
  • DefaultCorsProcessor's origin comparison is restrictive and inefficient [SPR-14080] #18652
  • Reset Expires header in WebContentGenerator when caching resources [SPR-14053] #18625
  • ModelAndView is replaced when a RedirectView is used [SPR-14045] #18617
  • Regression: Early instantiation of a bean prevents proxying for @Async in 4.2.x but works in 4.1.x [SPR-14030] #18602
  • Wrong ResolvableType for Event not extending from ApplicationEvent [SPR-14029] #18601
  • springUrl Velocity macro should encode the given URI using the response [SPR-14027] #18599
  • Scripted beans not updated after a script compilation error in getScriptedObjectType [SPR-14007] #18579
  • Regression: ResourceHandlerRegistration setCachePeriod doesn't set the correct response header anymore [SPR-14005] #18577
  • Regression: RequestMappingHandlerAdapter with synchronizeOnSession=true calls invokeHandlerMethod twice [SPR-13999] #18572
  • LinkedCaseInsensitiveMap doesn't implement getOrDefault properly [SPR-13981] #18553
  • First new line character is removed when use form:textarea tag [SPR-13503] #18081

📔 Documentation

  • Section 19.3.2 of reference mentions Hibernate 3 should be just Hibernate [SPR-14176] #18747
  • @EnableScheduling javadoc has incomplete XML example [SPR-14145] #18717
  • documentation : SpEL / Expression support for defining bean definitions / XML based configuration (9.4.1) [SPR-14074] #18646
  • Wrong RFC reference in Base64Utils documentation [SPR-14067] #18639

3.2.17 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ New Features

  • SimpleTriggerFactoryBean and CronTriggerFactoryBean fail without jobDetail [SPR-13604] #18182
  • Prevent Quartz XSD from being fetched from the Internet [SPR-13706] #18281
  • Backport MVC config path config options to 3.2.x [SPR-14186] #18757

🪲 Bug Fixes

  • Handle RejectedExecutionException in WebAsyncManager [SPR-13836] #18409
  • NullPointerException while building error message in InvocableHandlerMethod [SPR-13917] #18491
  • ReflectiveMethodResolver chooses parent class over child for static methods [SPR-13918] #18492
  • AbstractMarshaller's DocumentBuilderFactory instance may be used by several threads simultaneously [SPR-13935] #18507
  • TimerManagerTaskScheduler.TimerScheduledFuture.getDelay is inverted [SPR-13977] #18549
  • Scripted beans not updated after a script compilation error in getScriptedObjectType [SPR-14007] #18579
  • ModelAndView is replaced when a RedirectView is used [SPR-14045] #18617
  • @RequestHeader HttpHeaders fails with NPE against null header value [SPR-14091] #18663
  • NPE thrown when calling methods with an empty @Caching annotation [SPR-14162] #18734
  • Deadlock possible with AspectJ aspects and multi-threading [SPR-14241] #18814
  • AbstractRequestLoggingFilter appends null query string [SPR-14244] #18817

📔 Documentation

  • wrong example given at section 17.4 Handler mappings [SPR-13832] #18405
  • @EnableScheduling javadoc has incomplete XML example [SPR-14145] #18717

4.3 RC1 Release

17 Jan 14:22
Compare
Choose a tag to compare

⭐ New Features

  • Scoped proxies are fragile with respect to serialization [SPR-14117] #18689
  • Auto-detect Kotlin Jackson module [SPR-14108] #18680
  • Make localized field names lookup extensible in JSR-303 validation messages [SPR-14104] #18676
  • LocalValidatorFactoryBean should expose a hook for using a custom ValidationProviderResolver [SPR-14100] #18672
  • AnnotationTransactionAttributeSource should never apply to GroovyObject methods [SPR-14095] #18667
  • AsyncRestTemplate should trigger no-output HTTP requests immediately as well [SPR-14093] #18665
  • Refine TestPropertySourceUtils for Spring Boot usage [SPR-14088] #18660
  • PathMatchingResourcePatternResolver should enforce consistent alphabetical sorting of directory content [SPR-14085] #18657
  • Add setMultiTenantConnectionProvider to org.springframework.orm.hibernate5.LocalSessionFactoryBean [SPR-14072] #18644
  • Support for HTTP Vary configuration (e.g. in reaction to locale-based rendering) [SPR-14070] #18642
  • MockMvcWebConnection should share CookieManager with HtmlUnit driver [SPR-14066] #18638
  • Allow @Autowired to be declared on parameters [SPR-14057] #18629
  • Support creation of SynthesizingMethodParameter for constructor parameter [SPR-14054] #18626
  • MockHttpServletResponse should convert Cookies into Set-Cookie header [SPR-14051] #18623
  • ReflectionTestUtils should automatically unwrap proxies [SPR-14050] #18622
  • DefaultUserDestinationResolver does not support "." separator convention [SPR-14044] #18616
  • Reject @ManagedResource a on class which is not public [SPR-14042] #18614
  • BigDecimal to Integer/Short/Byte should overflow like BigDecimal to Long does [SPR-14041] #18613
  • HTTP persistent connections for HTTP Invoker and RestTemplate [SPR-14040] #18612
  • Support conversion between Enum and Integer [SPR-14039] #18611
  • Provide flag to allow ServletTestExecutionListener to run without @WebAppConfiguration [SPR-14035] #18607
  • InjectionPoint/DependencyDescriptor as injectable argument for @Bean methods [SPR-14033] #18605
  • Adding ability to read result sets row-by-row for MySql driver [SPR-14028] #18600
  • Reconsider enablement of JNDIPropertySource by default [SPR-14026] #18598
  • Support for OkHttp 3 [SPR-14024] #18596
  • Remove double slash from resolved WebJar resources [SPR-14018] #18590
  • Custom key classes for HashMap should implement Comparable [SPR-14017] #18589
  • Make TestContextManager.getTestContext() public [SPR-14011] #18583
  • Support placeholder for @CrossOrigin [SPR-14010] #18582
  • Allow @ComponentScan custom filters to implement *Aware interfaces [SPR-14009] #18581
  • Allow non-public @Transactional test methods [SPR-14000] #18573
  • Introduce ContextCustomizer API in the TestContext framework [SPR-13998] #18571
  • Support @BeforeTransaction and AfterTransaction on non-public methods [SPR-13997] #18570
  • Validator is not set after initializing web socket MessageBroker from xml configuration [SPR-13996] #18569
  • Introduce common composed annotations for web scopes [SPR-13993] #18566
  • Introduce common composed annotations for @RequestMapping [SPR-13992] #18565
  • Remove @BootstrapWith from @WebAppConfiguration [SPR-13991] #18564
  • Unique XML-specified constructor not accepted in case of unresolvable name [SPR-13987] #18559
  • Consistent resolution of factory method exceptions [SPR-13985] #18557
  • Support JacksonXmlModule.setDefaultUseWrapper [SPR-13975] #18547
  • Support repeatable annotations as composed annotations [SPR-13973] #18545
  • Allow a single element to override an array attribute in a meta-annotation [SPR-13972] #18544
  • Improve CacheOperation equals/hashCode implementation performance [SPR-13970] #18542
  • Allow spring.factories to load package private classes [SPR-13969] #18541
  • Improve core container exception meta-data [SPR-13968] #18540
  • TestContextManager.afterTestMethod doesn't handle java.lang.Error! [SPR-13961] #18534
  • Consistent behavior for unwrap(null) on JPA and Bean Validation wrappers [SPR-13960] #18533
  • ObjectFactory lacks method for getting bean with specified constructor arguments [SPR-13956] #18529
  • Allow @ContextConfiguration to be omitted [SPR-13955] #18528
  • Provide shorter 'alias' for SpringJUnit4ClassRunner [SPR-13954] #18527
  • @RequestHeader name/value does not accept placeholders [SPR-13952] #18525
  • Prevent accessing the session in ServletRequestAttributes.updateAccessedSessionAttributes() if no session attributes need to be updated [SPR-13950] #18522
  • Mis-typed URL should give 404 not 405 [SPR-13944] #18516
  • An ObjectFactory variant with lenient not-unique handling [SPR-13943] #18515
  • OkHttp RestTemplate adapter uses inappropriate async requests [SPR-13942] #18514
  • Support for Common Annotations 1.1's javax.annotation.Resource.lookup() [SPR-13941] #18513
  • Duplicate method signature in reference doc example [SPR-13940] #18512
  • Provide way in MVC Java config to modify rather than replace default HandlerExceptionResolvers [SPR-13931] #18503
  • ThreadPoolTaskExecutor does not allow for decorating Runnables [SPR-13930] #18502
  • Consistent API between spring-web and spring-messaging HandlerMethod infrastructure [SPR-13929] #18501
  • Speed up AntPathMatcher by doing prefix-match [SPR-13913] #18487
  • Ability to add a custom ResourceLoader conveniently in AnnotationConfigWebApplicationContext or conveniently as can be done via spring boot [SPR-13905] #18479
  • Convenient access to session and request attributes in controller methods [SPR-13894] #18468
  • Support 'primary' transaction managers and data sources in the TestContext Framework [SPR-13891] #18465
  • AnnotationAwareOrderComparator getP...
Read more