Skip to content

Releases: spring-projects/spring-framework

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

4.2.5 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • Support of SQL warnings in ScriptUtils [SPR-13959] #18532
  • PathMatchingResourcePatternResolver should provide consistent logging [SPR-13923] #18495
  • Automatically register a fixed path pattern when using a FixedStrategy with VersionResourceResolver [SPR-13883] #18456
  • Improve Jackson 2.7 compatibility [SPR-13853] #18426
  • Lot of undesired WARN logs after migration from Spring 3 to Spring 4 [SPR-13833] #18406
  • Oracle 12c JDBC driver throws inconsistent exception from getParameterType (affecting setNull calls) [SPR-13825] #18398
  • SimpleTriggerFactoryBean and CronTriggerFactoryBean fail without jobDetail [SPR-13604] #18182
  • SimpleNamespaceContext does not implement the full contract of the NamespaceContext interface [SPR-13713] #17620

🪲 Bug Fixes

  • TimerManagerTaskScheduler.TimerScheduledFuture.getDelay is inverted [SPR-13977] #18549
  • @Lazy with @Autowired(required=false) throws NullPointerException on invocation [SPR-13967] #18539
  • Spring ORM doesn't support addNamedQuery with EclipseLink [SPR-13957] #18530
  • (Web)MergedContextConfiguration.equals is not symmetrical [SPR-13951] #18524
  • AbstractMarshaller's DocumentBuilderFactory instance may be used by several threads simultaneously [SPR-13935] #18507
  • Spring fails to find bean's destroy method in case there is a bridge method [SPR-13922] #18494
  • ReflectiveMethodResolver chooses parent class over child for static methods [SPR-13918] #18492
  • NullPointerException while building error message in InvocableHandlerMethod [SPR-13917] #18491
  • AbstractXlsxView does not work on WebSphere Liberty Profile [SPR-13910] #18484
  • Regression: BufferedImageHttpMessageConverter does not set content-type header [SPR-13906] #18480
  • STOMP over SockJS is unreliable [SPR-13904] #18478
  • @Transactional tests are executed without a transaction if transaction manager is not discovered [SPR-13895] #18469
  • Regression: SPR-12443 breaks singleton bean references within a configuration class with null arguments [SPR-13887] #18460
  • LocalSessionFactoryBean (hibernate5) does not correctly pass custom ClassLoader to Hibernate [SPR-13879] #18452
  • ServletServerHttpRequest.getURI() escape the query parameters twice [SPR-13876] #18449
  • SessionDisconnectEvent.getUser() returns null instead of the session user [SPR-13871] #18444
  • ResponseEntity CacheControl ignored / extended by RequestMappingHandlerAdapter [SPR-13867] #18440
  • FastByteArrayOutputStream$FastByteArrayInputStream behaves incorrectly when no data is available [SPR-13858] #18431
  • Spring does not reliably detect circular imports in Java configurations [SPR-13852] #18425
  • RequestPartMethodArgumentResolver should defensively handle MethodParameter nesting level and java.util.Optional access [SPR-13850] #18423
  • Regression: ResourceUrlEncodingFilter can throw StringIndexOutOfBoundsException with relative URL [SPR-13847] #18420
  • Regression: Shared EntityManager proxy insists on actualTransactiveActive flag even with SYNCHRONIZATION_NEVER [SPR-13838] #18411
  • Handle RejectedExecutionException in WebAsyncManager [SPR-13836] #18409
  • Regression: Spring 4.2.4 fails to load configuration class on Google App Engine [SPR-13829] #18402
  • Preserve HTTP headers when caching resources in CachingResourceResolver [SPR-13817] #18390
  • Correct spring-websocket-4.2 versus spring-websocket-4.1 xsd declarations [SPR-13804] #18377
  • DefaultMessageListenerContainer hangs on shutdown [SPR-11787] #16409

📔 Documentation

  • @ComponentScan's includeFilters javadoc is misleading [SPR-13844] #18417
  • wrong example given at section 17.4 Handler mappings [SPR-13832] #18405

4.2.4 Release

17 Jan 14:32
Compare
Choose a tag to compare

⭐ New Features

  • Base64Utils: Support URL and filename safe alphabet (RFC 4648) [SPR-13784] #22188
  • Provide an easy way to populate a request in MockMvc for form input scenarios [SPR-13801] #18374
  • Defensive error reporting when ConfigurationClassParser introspects declared methods via StandardAnnotationMetadata [SPR-13791] #18364
  • ReflectionUtils cache uses up a fairly big chunk of heap even [SPR-13783] #18357
  • Allow for setting TTL on a response sent by @JmsListener [SPR-13774] #18348
  • Support for Microsoft SQL Server driver version 4 and above [SPR-13772] #18346
  • AbstractRequestLoggingFilter with startAsync: unwrap request to find ContentCachingRequestWrapper [SPR-13764] #18338
  • Configure view controllers with the ApplicationContext [SPR-13762] #18335
  • BeanFactoryAnnotationUtils.qualifiedBeanOfType should not instantiate all beans of given type before checking qualifier [SPR-13741] #18314
  • Consistent bean type checking for endpoint handlers [SPR-13725] #18298
  • Add JSR 310 Period and Duration Converters [SPR-13721] #18294
  • Cache detected factory methods in ObjectToObjectConverter [SPR-13703] #18278
  • @ManagedOperationParameter not marked with @Target/@Retention/@Documented/@Repeatable [SPR-13700] #18275
  • Allow SpelCompiler to compile MapAccessor expressions [SPR-13638] #18215
  • Conversion support for java.time.YearMonth (as well as MonthDay) [SPR-13518] #18095
  • Allow the ManagedResource/Attribute/Metric/Operation to be placed on interface [SPR-13138] #17729
  • Allow setting custom ClassPathBeanDefinitionScanner on AnnotationConfigWebApplicationContext [SPR-9324] #13962
  • Add conversion support for Joda Duration and Period [SPR-6706] #11372

🪲 Bug Fixes

  • java.lang.NullPointerException at org.springframework.test.web.servlet.result.MockMvcResultHandlers.(MockM‌​vcResultHandlers.java:44) [SPR-13802] #18375
  • VersionResourceResolver's versionStrategyMap should keep insertion order [SPR-13798] #18371
  • Jdbc4SqlXmlHandler should return null as documented (instead of throwing NPE) [SPR-13782] #18356
  • VerifyError when trying to compile constructor invocation with SpEL [SPR-13781] #18355
  • Regression: HttpEntityMethodProcessor does not allow other Http methods than defined in the HttpMethod Enum [SPR-13776] #18350
  • MessagingMessageListenerAdapter provides a BytesMessage that has already been read [SPR-13769] #18343
  • Inefficient and inconsistent setAllowedOrigins collection types in AbstractSockJsService/OriginHandshakeInterceptor [SPR-13761] #18334
  • allowed-origins are not resolved from properties variables [SPR-13760] #18333
  • ControllerAdviceBean javadoc is inconsistent with its implementation [SPR-13759] #18332
  • ResourceUrlEncodingFilter improperly encodes URLs on root page [SPR-13757] #18330
  • Second call to MVC handler method with Optional parameter fails with argument type mismatch [SPR-13755] #18328
  • MockHttpServletResponse.setIntHeader throws exception for 'Content-Length' header [SPR-13752] #18325
  • The URL content negotiation "format" parameter values are case sensitive and only lowercase values are accepted [SPR-13747] #18320
  • SubProtocolWebSocketHandler does not update lastSessionCheckTime [SPR-13745] #18318
  • NoClassDefFoundError: org/joda/time/YearMonth for joda-time < 2 [SPR-13730] #18303
  • CssLinkResourceTransformer is incompatible with FixedVersionStrategy VersionResourceResolver [SPR-13727] #18300
  • Regression: AsyncAnnotationBeanPostProcessor fails on startup when encountering ambiguous TaskExecutor beans [SPR-13720] #18293
  • Regression: ShallowEtagHeaderFilter does not add Etag header for ResponseEntity returning methods [SPR-13717] #18290
  • Regression: UriTemplate does not match when URI ends with slash [SPR-13705] #18280
  • SimpAnnotationMethodMessageHandler fails when no applicationDestinationPrefixes configured or Rabbit endpoint present [SPR-13704] #18279
  • SynthesizedAnnotation is not visible from class loader [SPR-13696] #18271
  • Regression: Spring on WildFly causing ClassNotFoundException in ASM when deployed outside of EAR [SPR-13695] #18270
  • HTTP Range requests hang on large file in nested jar [SPR-13661] #18236
  • EventListenerMethodProcessor resolves classes of lazy beans causing NoClassDefFoundError [SPR-13712] #17619
  • SpEL compiler creating bad byte code for some values that are added together via OpPlus [SPR-12426] #17032

📔 Documentation

  • Documentation is missing for sendTimeLimit bufferSizeLimit for ConcurrentWebSocketSessionDecorator [SPR-13753] #18326
  • Cacheable#key should define the available arguments [SPR-13746] #18319

4.1.9 Release

17 Jan 14:33
Compare
Choose a tag to compare

⭐ New Features

  • Allow setting custom ClassPathBeanDefinitionScanner on AnnotationConfigWebApplicationContext [SPR-9324] #13962
  • Skip Content-Disposition header when status != 2xx [SPR-13588] #18165
  • Avoid NPE for anonymous SqlParameter in CallMetaDataContext [SPR-13628] #18206
  • Content-Disposition with fixed file name "f.txt" causes confusion [SPR-13643] #18220
  • Revisit BeansException warn logging after startup failure [SPR-13663] #18238
  • Implement containsKey for HttpHeaders returned from ServletServerHttpResponse [SPR-13668] #18243
  • BeanFactoryAnnotationUtils.qualifiedBeanOfType should not instantiate all beans of given type before checking qualifier [SPR-13741] #18314
  • Configure view controllers with the ApplicationContext [SPR-13762] #18335
  • AbstractRequestLoggingFilter with startAsync: unwrap request to find ContentCachingRequestWrapper [SPR-13764] #18338
  • Support for Microsoft SQL Server driver version 4 and above [SPR-13772] #18346
  • Allow for setting TTL on a response sent by @JmsListener [SPR-13774] #18348
  • Defensive error reporting when ConfigurationClassParser introspects declared methods via StandardAnnotationMetadata [SPR-13791] #18364

🪲 Bug Fixes

  • SpEL compiler creating bad byte code for some values that are added together via OpPlus [SPR-12426] #17032
  • mvc:view-resolvers does not reliably find declared ContentNegotiationManager [SPR-13559] #18135
  • Content-Disposition header causes download in browser for Spring Boot Actuator endpoints [SPR-13587] #18164
  • AbstractJdbcCall's compiled variable should be declared as volatile [SPR-13617] #18195
  • webjars resource handling may run into NPE in JarURLInputStream [SPR-13620] #18198
  • Content-Disposition added for @ResponseBody methods explicitly mapped to ".html" or other extensions [SPR-13629] #18207
  • SerializableTypeWrapper.MethodInvokeTypeProvider can be exploited for unsafe deserialization [SPR-13656] #18232
  • CommonsMultipartFile.getOriginalFilename() does not strip file path properly [SPR-13662] #18237
  • AbstractApplicationContext.isRunning throws IllegalStateException when called too early [SPR-13667] #18242
  • SimpAnnotationMethodMessageHandler fails when no applicationDestinationPrefixes configured or Rabbit endpoint present [SPR-13704] #18279
  • CssLinkResourceTransformer is incompatible with FixedVersionStrategy VersionResourceResolver [SPR-13727] #18300
  • SubProtocolWebSocketHandler does not update lastSessionCheckTime [SPR-13745] #18318
  • The URL content negotiation "format" parameter values are case sensitive and only lowercase values are accepted [SPR-13747] #18320
  • MockHttpServletResponse.setIntHeader throws exception for 'Content-Length' header [SPR-13752] #18325
  • Second call to MVC handler method with Optional parameter fails with argument type mismatch [SPR-13755] #18328
  • ResourceUrlEncodingFilter improperly encodes URLs on root page [SPR-13757] #18330
  • ControllerAdviceBean javadoc is inconsistent with its implementation [SPR-13759] #18332
  • allowed-origins are not resolved from properties variables [SPR-13760] #18333
  • Inefficient and inconsistent setAllowedOrigins collection types in AbstractSockJsService/OriginHandshakeInterceptor [SPR-13761] #18334
  • MessagingMessageListenerAdapter provides a BytesMessage that has already been read [SPR-13769] #18343
  • VerifyError when trying to compile constructor invocation with SpEL [SPR-13781] #18355
  • Jdbc4SqlXmlHandler should return null as documented (instead of throwing NPE) [SPR-13782] #18356
  • VersionResourceResolver's versionStrategyMap should keep insertion order [SPR-13798] #18371

📔 Documentation

  • Fix cron trigger example in reference documentation [SPR-10474] #15107
  • Revisit remaining XmlBeanFactory usage in reference documentation [SPR-13485] #18064
  • Error in RequestEntity's javadoc [SPR-13666] #18241
  • Cacheable#key should define the available arguments [SPR-13746] #18319
  • Documentation is missing for sendTimeLimit bufferSizeLimit for ConcurrentWebSocketSessionDecorator [SPR-13753] #18326

3.2.16 Release

17 Jan 15:44
Compare
Choose a tag to compare

⭐ New Features

  • Skip Content-Disposition header when status != 2xx [SPR-13588] #18165
  • Avoid NPE for anonymous SqlParameter in CallMetaDataContext [SPR-13628] #18206
  • Content-Disposition with fixed file name "f.txt" causes confusion [SPR-13643] #18220
  • Revisit BeansException warn logging after startup failure [SPR-13663] #18238
  • BeanFactoryAnnotationUtils.qualifiedBeanOfType should not instantiate all beans of given type before checking qualifier [SPR-13741] #18314
  • Support for Microsoft SQL Server driver version 4 and above [SPR-13772] #18346

🪲 Bug Fixes

  • Content-Disposition header causes download in browser for Spring Boot Actuator endpoints [SPR-13587] #18164
  • AbstractJdbcCall's compiled variable should be declared as volatile [SPR-13617] #18195
  • Content-Disposition added for @ResponseBody methods explicitly mapped to ".html" or other extensions [SPR-13629] #18207
  • CommonsMultipartFile.getOriginalFilename() does not strip file path properly [SPR-13662] #18237
  • AbstractApplicationContext.isRunning throws IllegalStateException when called too early [SPR-13667] #18242
  • Jdbc4SqlXmlHandler should return null as documented (instead of throwing NPE) [SPR-13782] #18356

📔 Documentation

  • Fix cron trigger example in reference documentation [SPR-10474] #15107