Skip to content

Releases: spring-projects/spring-framework

4.0 RC1 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • Support class-level mappings via @MessageMapping or @SubscribeEvent [SPR-11024] #15652
  • ScriptExecutor for JSR-223 [SPR-11007] #15635
  • Update json-path dependency to 0.9.0 [SPR-10990] #15618
  • Add support for resolving message header based arguments [SPR-10985] #15613
  • Introduce ResolvableType Class [SPR-10973] #15601
  • Provide option to configure "host" header in CONNECT frames to STOMP message brokers [SPR-10955] #15583
  • Support @PathVariable in annotated message handling methods [SPR-10949] #15577
  • SpEL: Make EvaluationException more informative with Expression [SPR-10938] #15566
  • Add "ignoreResourceNotFound" attribute to the @PropertySource [SPR-10932] #15560
  • Add IssueManagement declaration to POMs [SPR-10929] #15557
  • PersistenceExceptionTranslationPostProcessor.setBeanFactory(BeanFactory) causes unwanted early initialization [SPR-10894] #15522
  • Potential out-of-memory in AbstractSockJsService [SPR-10893] #15521
  • Validate if body is allowed in StompMessageConverter for the given command [SPR-10890] #15518
  • Provide support for using multiple MessageConverters depending on the Content-Type of a STOMP message [SPR-10889] #15517
  • Use ListenableFuture as the return value in WebSocketClient methods [SPR-10888] #15516
  • Make conversion framework extensible for non-Java classes [SPR-10887] #15515
  • ThreadPoolTaskScheduler setPoolSize() unable to change the pool size at runtime [SPR-10883] #15510
  • oxm:jibx-marshaller lacks support for "target-package" annotation [SPR-10882] #15509
  • Switch to Jetty's @WebSocket (from WebSocketListener) [SPR-10877] #15504
  • Add STOMP heartbeat support [SPR-10845] #15472
  • Add support for extensions during WebSocket handshake [SPR-10843] #15470
  • Compatibility problems with Hibernate 4.3.0.Beta1 and newer [SPR-10839] #15465
  • Hibernate 4 Multi Tenancy Feature Support [SPR-10823] #15449
  • Enhance Stomp support to handle frames with NULL octets in the body [SPR-10818] #15444
  • Provide support for pattern matching in MockMvcResultMatchers.redirectedUrl() [SPR-10789] #15415
  • Use Tomcat 8's new instrumentable WebappClassLoader [SPR-10788] #15414
  • add support for MockRestServiceServer to verify that a header does not exist [SPR-10771] #15397
  • Add ability to create proxy around classes that has no default constructor [SPR-10594] #15223
  • FilterType enum should have ASPECTJ, REGEX constants for AspectJTypeFilter, RegexPatternTypeFilter [SPR-10593] #15222
  • RestTemplate does not support IPv6 raw address (as opposed to hostname) [SPR-10539] #15169
  • MVC DispatcherServlet throw exception in noHandlerFound [SPR-10481] #15114
  • enhance Jackson2ObjectMapperFactoryBean to allow setting of (De)SerializerModifiers [SPR-10429] #15062
  • Off by one error in StringUtils.parseLocaleString [SPR-10364] #14996
  • Allow @ControllerAdvice to be cofigured with a join point to target a subset of controller [SPR-10222] #14855
  • ShallowEtagHeaderFilter should deal with the If-Match HTTP Header [SPR-10164] #14797
  • Autowiring of generic types [SPR-9965] #14599
  • Provide mechanism for creating links to controllers and controller methods [SPR-8826] #13468
  • Add @PropertySources annotation and support ignoreResourceNotFound [SPR-8371] #13018
  • Support Servlet 3.1 (JSR-340) [SPR-8193] #12842
  • Provide meta-annotation support for test-related annotations [SPR-7827] #12483
  • Convert TestContext to interface and introduce default implementation [SPR-7692] #12348
  • Migrate Grails BeanBuilder into Spring Core [SPR-7123] #11783
  • Create CGLIB proxy instances honoring tags [SPR-3150] #7836
  • Spring i18n needs TimeZone resolution as well as Locale resolution. [SPR-1528] #6227

🪲 Bug Fixes

  • HttpComponentsClientHttpRequestFactory method signature changes prevent user code from supporting Spring 3 and Spring 4 simultaneously [SPR-11053] #15680
  • GenericTypeResolver.resolveTypeArguments(…) returns Object for raw types [SPR-11052] #15679
  • Spring web depends on a beta release of Apache HTTP Client [SPR-11050] #15677
  • NPE in MatchAlwaysTransactionAttributeSource [SPR-11048] #15675
  • Unable to autowire concrete classes when java config methods return interface [SPR-11046] #15673
  • ResolvableType can throw NPE when resolving Generic Arrays [SPR-11044] #15672
  • NPE in ResolvableType.hasUnresolvableGenerics [SPR-11034] #15662
  • Potential NPE on result of GenericTypeResolver.resolveTypeArguments [SPR-11030] #15658
  • groovy-all should not be a mandatory dependency [SPR-11028] #15656
  • "Illegal instant due to time zone offset transition" when binding with LocalDate (joda) in Controller handler [SPR-11014] #15642
  • TypeDescriptor can no longer be programatically created with null generics [SPR-11006] #15634
  • Autowiring of types narrows with generics does not work [SPR-11004] #15632
  • Generic autowiring should support wiring of components with unresolved type variables [SPR-10993] #15621
  • Regression with detecting nested components [SPR-10970] #15598
  • HttpInvokerClientInterceptor.convertHttpInvokerAccessException implementation throws the RemoteAccessException instead of return it [SPR-10965] #15593
  • Keep "cookie_needed" property in SockJS service enabled by default [SPR-10939] #15567
  • Server sends SEND stomp frames back to the client instead of MESSAGE frames [SPR-10930] #15558
  • getSockJsPath() method in org.springframework.web.socket.sockjs.support.AbstractSockJsService returns wrong path [SPR-10923] #15551
  • RequestMappingHandlerAdapter.createDataBinderFactory has a return type of ServletRequestDataBinderFactory [SPR-10920] #15548
  • @RestController causing errors [SPR-10905] [#15533](https://github.com/spring-projects/spring-framework/issues/...
Read more

4.0 M3 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • Can @Profile be @Documented [SPR-10967] #15595
  • Add support for sending Ping and Pong WebSocket messages as well as for handling incoming Pong messages [SPR-10876] #15503
  • Implement ChannelInterceptor-like feature for SockJS/WebSocket/STOMP messages [SPR-10866] #15493
  • Add client and server-side WebSocket container configuration support [SPR-10844] #15471
  • MockMvcBuilders.standaloneSetup() ignores controller path mapping URIs' placeholders [SPR-10825] #15451
  • Untranslated Hibernate exception [SPR-10815] #15441
  • Add @RestController to stereotype a controller that is going to be used for @ResponseBody rendering [SPR-10814] #15440
  • Stereotype @Profiles not merged [SPR-10812] #15438
  • Make it possible to configure serialization inclusion for Jackson ObjectMapper [SPR-10810] #15436
  • Make the use of JSON library in the SockJS service configurable [SPR-10800] #15426
  • Add support for discovering JPA 2.1 @Converter during scanning [SPR-10799] #15425
  • Allow headers to be set on WebSocketConnectionManager [SPR-10796] #15422
  • Add LocalContainerEntityManagerFactoryBean missing methods to easily replace elements in persistence.xml [SPR-10764] #15390
  • Request streaming for HttpComponentsClientHttpRequestFactory [SPR-10728] #15356
  • Add recovery-interval to jms:listener-container [SPR-10711] #15339
  • Make UriComponents.UriTemplateVariables public [SPR-10647] #15275
  • Allow BeanDefinitionRegistryPostProcessor to register other BeanDefinitionRegistryPostProcessors [SPR-10630] #15258
  • Provide access to attributes from the handshake HTTP session [SPR-10624] #15252
  • Allow @Bean to override a dynamically registered bean definition [SPR-10607] #15236
  • New @Description annotation to add description field to BeanDefinition when using annotation based configuration [SPR-10583] #15212
  • @RequestMapping inheritance not worked as expect with a dot path [SPR-10554] #15185
  • Assign lowest priority to "/**" in AntPathMatcher [SPR-10550] #15181
  • MarshallingHttpMessageConverter#supports() is not symmetric [SPR-10463] #15096
  • Add time zone support to the @Scheduled annotation for cron jobs [SPR-10456] #15089
  • UriComponentsBuilder should provide a way to remove the extension from the path [SPR-10272] #14906
  • Allow usage of @Lazy on injection points [SPR-10353] #14896
  • Allow meta-annotations to override attributes from their parent [SPR-10181] #14814
  • Comprehensive support for Java 8 / OpenJDK 8 [SPR-9639] #14273
  • Support for WebSocket messaging [SPR-9356] #13994
  • Support an asynchronous API for RestTemplate [SPR-8804] #13446
  • Make org.springframework.http.MediaType Serializable [SPR-8738] #13380
  • Doc: gzip support in RestTemplate [SPR-7874] #12531
  • Autowiring should support ordered collection driven by Order annotation or Ordered interface [SPR-5574] #10245

🪲 Bug Fixes

  • Stomp passcode should not be included in plain text in log messages [SPR-10868] #15495
  • WebSocket support on Jetty always uses SockJS HTTP fallbacks [SPR-10861] #15488
  • NoSuchMethodError: MediaType.isCompatibleWithMediaType;) [SPR-10860] #15487
  • Spring no longer recognizes mapped classes [SPR-10826] #15452
  • NoSuchMethodError: org.springframework.util.MultiValueMap.getOrDefault(Ljava/lang/Object;Ljava/lang/Object;) [SPR-10807] #15433
  • SpringConfigurator uses ListableBeanFactory method which is documented to be slow for EVERY new WebSocket connection [SPR-10605] #15234

📔 Documentation

  • Modify Spring 4.x documentation to reflect JSR-349 support [SPR-10813] #15439

3.2.4 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • Fix potential security risk when using Spring OXM [SPR-10806] #15432
  • Fix SimpleJdbc{Call,Insert} Javadoc [SPR-10792] #15418
  • Make HttpHeaders getFirstDate(String headerName) and setDate(String headerName, long date) methods as public [SPR-10713] #15341
  • WebAsyncUtils could/should cache the reference to StandardServletAsyncWebRequest's constructor [SPR-10673] #15301
  • Configurable JSON prefix on MappingJackson2HttpMessageConverter and MappingJacksonHttpMessageConverter [SPR-10627] #15255
  • Add ability to check that attribute does not exist in Spring MVC test framework [SPR-10509] #15141
  • XStreamMarshaller - no way to set a MapperWrapper on XStream [SPR-10421] #15054
  • Unnecessary blocking in DelegatingFilterProxy [SPR-10413] #15046

🪲 Bug Fixes

  • ResourceHttpRequestHandler always logs warning [SPR-10780] #15407
  • UriComponentsBuilder should be case-insensitive when parsing URL scheme names [SPR-10779] #15406
  • Spring + Quartz 2.2.0 Integration is Inconsistent [SPR-10775] #15401
  • is read incorrectly in PersistenceUnitReader [SPR-10767] #15393
  • JDBC Connection is not released due to incorrectly defined catch [SPR-10755] #15381
  • setPrefixJson don't work in org.springframework.web.servlet.view.json.MappingJackson2JsonView and org.springframework.web.servlet.view.json.MappingJacksonJsonView [SPR-10752] #15378
  • spring-instrument has unused dependency on spring-core [SPR-10732] #15360
  • spring-instrument is lacking Java 7 instrumentation manifest attributes [SPR-10731] #15359
  • method demarcated with @Async isn't executed when precompiled [SPR-10715] #15343
  • ClassPathJaxb2TypeScanner which scans packagesToScan for Jaxb2Marshaller does not scan for @XmlRegistry annotation [SPR-10714] #15342
  • Spring 3.2.2 AOP has increased memory usage [SPR-10709] #15337
  • ServletUriComponentsBuilder doesn't work if X-Forwarded-Host is in host:port format [SPR-10701] #15329
  • ${} placeholders are not resolved in @ImportResource [SPR-10686] #15314
  • ContentNegotiatingViewResolver does not select any views if no content types are requested [SPR-10683] #15311
  • BeanFactory.getBeansWithAnnotation() should not consider abstract beans [SPR-10663] #15291
  • Cached MethodExecutor invokes wrong method [SPR-10657] #15285
  • Missing RmiInvocationWrapperRTD.xml (build problem?) [SPR-10649] #15277
  • HttpHeaders should be tolerant with bad date-aware headers as it said in the RFC 2616 [SPR-10648] #15276
  • ConfigurationClassPostProcessor should be Ordered.HIGHEST_PRECEDENCE [SPR-10645] #15273
  • Invocation of @Async service fails [SPR-10636] #15264
  • TypeDescriptor must be Serializable [SPR-10631] #15259
  • UnionMethodMatcher and ClassFilterAwareUnionMethodMatcher have broken eqauls. [SPR-10604] #15233
  • Rename HttpHeaders#getIfNotModifiedSince() to getIfModifiedSince() to avoid confusing [SPR-10600] #15229
  • ClassCastException on meta @Components with not Spring value [SPR-10580] #15209
  • Revert change for SPR-10402 that allowed treating empty values as missing values [SPR-10578] #15207
  • Spring3.2 bug context:property-placeholder nested search property appear java.lang.StackOverflowError [SPR-10549] #15180
  • Async does not work anymore when switching from 3.2 to 3.2.2 [SPR-10492] #15125

📔 Documentation

  • Documentation Error: rollbackForClassname is listed, should be rollbackForClassName (notice UPPERcase N) [SPR-10754] #15380
  • SQL syntax error in jdbcTemplate update example [SPR-10625] #15253
  • Doc: JMS CachingConnectionFactory incompatible with DefaultMessageListenerContainer in some circumstances [SPR-10581] #15210

4.0 M2 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • XPath expressions in Spring MVC Test fail when using the default namespace [SPR-10704] #15332
  • Documentation in 17.15.3 Configuring Interceptors incorrect [SPR-10670] #15298
  • Make #result available for SpEL in @CachePut key attribute [SPR-10664] #15292
  • Add expected header name to assert message for HeaderResultMatchers [SPR-10659] #15287
  • @CacheEvict key should allow referencing return value [SPR-10658] #15286
  • Typo in ModelAndViewMethodReturnValueHandler's JavaDoc [SPR-10650] #15278
  • Ensure that method and requestURI fields are non-null in MockHttpServletRequest [SPR-10643] #15271
  • Introduce deleteFromTableWhere() in abstract transactional base classes in the TestContext Framework [SPR-10639] #15267
  • Introduce java.nio.file.Path based Resource implementation [SPR-10608] #15237
  • Make result-data accessible in onCompletion Event in DeferredResult [SPR-10603] #15232
  • ImportSelector and ImportBeanDefinitionRegistrar should be able to implement EnvironmentAware [SPR-10602] #15231
  • SimpleCommandLinePropertySource could be enumerable [SPR-10579] #15208
  • Support for @Conditional @Configuration [SPR-10534] #15164
  • Create MockHttpServletRequestBuilder.accept(String ...mediatTypes) overload. [SPR-10390] #15023
  • Introduce ActiveProfilesResolver in the TestContext framework [SPR-10338] #14972
  • Make form method accessible to RequestDataValueProcessor [SPR-10041] #14675
  • Support implicit ports for MockHttpServletRequest.getRequestURL() [SPR-9726] #14360
  • Add spring:argument subtag for spring:message [SPR-9678] #14312
  • Introduce TCP & UDP server port scanning utility [SPR-8032] #12687
  • MockHttpSession methods should throw IllegalStateException if invalid [SPR-7659] #12315

🪲 Bug Fixes

  • PathResourceTests fail on Windows [SPR-10770] #15396
  • Ensure ParamTag release resources [SPR-10769] #15395
  • Turn down logging in DefaultListableBeanFactory [SPR-10758] #15384
  • Could not build from sources [SPR-10751] #15377
  • WebSocketHttpRequestHandler constructor doesn't use handshakeHandler [SPR-10721] #15349
  • Regression in SharedEntityManagerCreator [SPR-10678] #15306
  • Include all SQL statements in batch fail exception [SPR-10677] #15305
  • Self-injection in configuration class hierarchies broken [SPR-10668] #15296
  • JdbcTemplate.queryForObject throws TypeMismatchDataAccessException when used per the reference manual [SPR-10651] #15279
  • Support @Configuration class parsing fallback to ASM [SPR-10646] #15274
  • AbstractMethodError thrown within MethodValidationInterceptor [SPR-10644] #15272
  • JsonpTransportHandler read message header problem [SPR-10621] #15249
  • Do not consider all @Component instances as @Configuration candidates [SPR-10609] #15238
  • Documentation issues in @RequestMapping [SPR-10587] #15216
  • Fix getters to match setters in RequestMappingHandlerAdapter [SPR-10519] #15150
  • view/ JSP compilation exceptions, not logged from JstlView or DispatcherServlet. [SPR-10340] #14974
  • Cacheable key collision with DefaultKeyGenerator [SPR-10237] #14870

3.2.3 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • Enforce JDK version on CI server [SPR-10569] #15198
  • Configurable JSON prefix on MappingJackson2JsonView and MappingJacksonJsonView [SPR-10567] #15196
  • Small clarification to CronTrigger javadoc [SPR-10556] #15186
  • AnnotationAwareOrderComparator does not work on proxied classes [SPR-10514] #15145
  • Improve defaulting of media types via ContentNegotiationManager [SPR-10513] #15144
  • Jaxb2Marshaller doesn't need to depend on ResourceLoaderAware and thus spring-context [SPR-10512] #15143
  • No way to ask MethodReference for its private field 'name' [SPR-10422] #15055
  • Make implementations of PreparedStatementSetter public, not package-private [SPR-10375] #15008
  • OXM Jaxb2Unmarshaller to support non-root elements [SPR-10282] #14916

🪲 Bug Fixes

  • Large number of StandardEnvironment objects are initialised during startup. Visible in the logs at DEBUG level. [SPR-10568] #15197
  • Cannot instantiate bean in Spring when using annotations and when it extends generic abstract class compiled to java 1.4 byte code [SPR-10559] #15189
  • BeanPropertyRowMapper underscoreName [SPR-10547] #15177
  • Loading @Import(ChildConfig) or EnclosingConfig.ChildConfig and then ChildConfig does not load beans on ParentConfig [SPR-10546] #15176
  • Lookup of beans of type fails for factory beans if type prediction is used. [SPR-10517] #15148
  • AbstractAutowireCapableBeanFactory.predictBeanType returns parent type instead of class="" value [SPR-10507] #15139
  • Deadlocks with DeferredResult timeout handling on Tomcat [SPR-10485] #15118
  • ServletContextResourcePatternResolver fails to resolve resources when an app is using a foo#bar.war filename [SPR-10471] #15104
  • cannot delete file once resttemplate has done a multipart postforentity with the said file [SPR-10460] #15093
  • NPE in the ContextLoader#customizeContext on building Assert.isAssignable message [SPR-10449] #15082
  • Sporadic deadlocks while using servlet scoped beans from another thread. [SPR-10436] #15069
  • A URI with URL path parameters causes IllegalStateException [SPR-10427] #15060
  • PropertyEditor registered through @ControllerAdvice will not be superseded by local one. [SPR-10419] #15052
  • Request @RequestParam not enforced with empty values [SPR-10402] #15035
  • spring3.2 matrix variable url match problem [SPR-10398] #15031
  • PooledConnection has already been closed exception with Hibernate 4.2 [SPR-10395] #15028
  • Typo in Code Example [SPR-10394] #15027
  • ReflectiveMethodResolver causes UnsupportedOperationException [SPR-10392] #15025
  • Fix errors in Spring MVC Test server-side code examples [SPR-10389] #15022
  • Remove default value of LifecycleGroup.lifecycleBeans [SPR-10388] #15021
  • Ant Pattern Matching throws IllegalStateException for multiple RequestMapping values [SPR-10386] #15019
  • JdbcTemplate cannot set null parameter with Oracle driver [SPR-10385] #15018
  • Form tag prepending context/servlet path breaks use for portlets [SPR-10382] #15015
  • Type detection fails for child bean if parent bean has been resolved before [SPR-10374] #15007
  • JavaDoc generation reports warnings [SPR-10373] #15006
  • Unnecessary check in PatternsRequestCondition.getMatchingPattern [SPR-10504] #14998

4.0 M1 Release

17 Jan 14:34
Compare
Choose a tag to compare

⭐ New Features

  • Allow access to applied property sources from PropertySourcesPlaceholderConfigurer [SPR-10545] #15175
  • Make DefaultResourceLoader.ClassPathContextResource protected [SPR-10544] #15174
  • Consider @Import classes as lite @Configuration [SPR-10533] #15163
  • Filter source @Configuration with @ComponentScan [SPR-10531] #15161
  • Support *Aware ImportSelectors [SPR-10530] #15160
  • Add AnnotationConfigApplicationContext constructor for custom DefaultListableBeanFactory [SPR-10529] #15159
  • Make SpringFactoriesLoader.loadFactoryNames method public [SPR-10528] #15158
  • Cannot inject ServletContext into MockMultipartHttpServletRequest [SPR-10098] #14731
  • Support for JTA 1.2 transaction annotation [SPR-9139] #13778
  • Update EhCacheFactoryBean to support current releases (2.4.x) [SPR-8258] #12906
  • Support Bean Validation 1.1 (JSR-349) [SPR-8199] #12848
  • Support JMS 2.0 (JSR-343) [SPR-8197] #12846
  • Support Concurrency Utilities for Java EE (JSR-236) [SPR-8195] #12844
  • Support JPA 2.1 (JSR-338) [SPR-8194] #12843

🪲 Bug Fixes

  • Use of same @Configuration class across multiple ApplicationContexts is not threadsafe [SPR-10936] #15564
  • Creating ApplicationContexts from multiple threads causes ConcurrentModificationException [SPR-10543] #15173
  • Cannot configure validationMessageSource when using Hibernate 5 as validation implementation [SPR-10466] #15099
  • Fix missing font for JasperReports tests on Linux [SPR-10438] #15071
  • Concurrent creation of the same Configuration class in different contexts is not thread-safe [SPR-10307] #14941
  • IllegalArgumentException initializing an application compiled with Java 8 [SPR-10292] #14926

3.2.2 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • Clarify DefaultLobHandler's applicability to Oracle 10g/11g [SPR-10339] #14973
  • Introduce a pre-resolved target type in RootBeanDefinition [SPR-10335] #14969
  • The JARs spring-test-3.2.1 and spring-webmvc-3.2.1 contain two MANIFEST.MF [SPR-10324] #14958
  • DefaultJdoDialect does not support JDO 2.2 isolation levels [SPR-10323] #14957
  • Replace examples using deprecated SimpleJdbcTemplate [SPR-10317] #14951
  • Introduce JdbcTestUtils.deleteFromTableWhere method [SPR-10302] #14936
  • Ability to set per-session entity interceptors removed from HibernateTransactionManager for Hibernate 4 [SPR-10301] #14935
  • Share locale independent properties among several ResourceBundleMessageSources [SPR-10291] #14925
  • In AnnotationSessionFactoryBean, be able to specify annotatedPackages and packagesToScan in one property [SPR-10288] #14922
  • Log4jWebConfigurer only uses System properties/environment [SPR-10284] #14918
  • StandaloneMockMvcBuilder interface is inconsistent [SPR-10279] #14913
  • MockMvcBuilders' use of generics doesn't allow for chaining more than 2 calls [SPR-10277] #14911
  • Assertion message unclear when expected and actual have same string representation [SPR-10275] #14909
  • Resolve SQL errorCode from underlying SQLException [SPR-10260] #14893
  • NamedParameterJdbcTemplate and JdbcTemplate: consider deprecating queryFor* methods [SPR-10257] #14890
  • NamedParameterJdbcTemplate: add methods to simplify usage when no parameter is needed [SPR-10256] #14889
  • No way to ask RealLiteral for original string (to parse into BigDecimal) [SPR-10248] #14881
  • Cannot create relative URIs with UriComponents [SPR-10231] #14864
  • DefaultMessageListenerContainer should expose an API to determine whether the consumer successfully connected to a topic/queue [SPR-10230] #14863
  • Limit auto grow collection size when using SpEL [SPR-10229] #14862
  • org.springframework.http.MediaType.parseMediaType should throw a better exception [SPR-10226] #14859
  • Update documentation examples for scheduling to use SimpleTriggerFactoryBean instead of SimpleTriggerBean [SPR-10209] #14842
  • Cleanup whitespace in *.aj and use AspectJ Annotations to prevent NoSuchMethodErrors [SPR-10208] #14841
  • @RequestParam default value not set in certain cases [SPR-10180] #14813
  • o.s.web.util.JavaScriptUtils.javaScriptEscape insufficiently escapes some characters [SPR-9983] #14617
  • Support WebApplicationContext hierarchies in the TestContext Framework [SPR-9863] #14496
  • Transparent authentication fails when POSTing to Kerberos web service using the Simple HTTP Client [SPR-9617] #14251
  • Reference Documentation needs a chapter on using Gemfire as a CacheManager [SPR-9468] #14103
  • SPEL: Error message is useless at helping developer resolve problem actual problem, EL1027E:(pos 4): Indexing into type ... [SPR-8876] #13517
  • @Cachable condition should allow referencing return value [SPR-8871] #13512
  • Hibernate Annotation scanner missing package-info.java [SPR-8589] #13233
  • Update for Spring OXM Reference, including changes introduced in CastorMarshaller [SPR-8509] #13155
  • @PreDestroy and @PostConstruct should be mentioned more prominently in container callback section [SPR-8493] #13139
  • CastorMarshaller - marshaller and unmarshaller properties. [SPR-8470] #13116
  • @Scheduled's int attributes do not allow for placeholder values [SPR-8067] #12722
  • AnnotationSessionFactoryBean packagesToScan does not scan for annotations in package's package-info.java file [SPR-7748] #12404
  • Make MappingJacksonJsonView fields protected to make extending it easier [SPR-7619] #12275
  • Provide support for context hierarchies in the TestContext Framework [SPR-5613] #10284
  • Performance improvement on AbstractCachingViewResolver [SPR-3145] #7831

🪲 Bug Fixes

  • Configuration class implementing Provider interface throws StackOverflowError after upgrading to Java 7 [SPR-11830] #16449
  • Thread-safety issue in RequestMappingHandlerAdapter causes NPE [SPR-10365] #14997
  • UriComponentsBuilder.fromUriString(…) throws exception for empty fragment [SPR-10363] #14995
  • SpringCompleteAutoloadTilesContainerFactory disables EL expressions [SPR-10361] #14993
  • Scope of model attributes when including JSP [SPR-10360] #14992
  • mvc:resources location attribute doesn't guarantee order [SPR-10355] #14987
  • SpringValidationAdapter cannot handle disabled default constraint violation [SPR-10345] #14979
  • Change in FrameworkServlet makes it impossible to use an alternative WebRequest instance for request processing [SPR-10342] #14976
  • doOptions method of FrameworkServlet uses servlet 3.0 only method [SPR-10341] #14975
  • MockServletContext always returns application/octet-stream for unknown filetypes or ContentNegotiationManager is not correct [SPR-10334] #14968
  • StringToEnumConverterFactory fails to convert enums using classes from values [SPR-10329] #14963
  • NPE while parsing an invalid indexer expression [SPR-10328] #14962
  • By-type matching caches in DefaultListableBeanFactory should be cleared on registerSingleton [SPR-10326] #14960
  • Broken UriComponents.equals() method [SPR-10313] #14947
  • LazyConnectionDataSourceProxy causes exception in WebSphere with an Oracle database [SPR-10312] #14946
  • Reference documentation declares inner beans being prototypes, which is wrong [SPR-10311] #14945
  • AspectJ advisor always positioned behind an "old school" advisor [SPR-10309] #14943
  • Invalid format media-type in Content-Type request header results in IllegalArgumentException when no handler matched [SPR-10308] #14942
  • ArrayIndexOutOfBoundsException in AbstractAutowireCapableBeanFactory.predictBeanType [SPR-10304] #14938
  • java.lang.IllegalStateException: getOutputStream() has already been called for this response [SPR-10293] #14927
  • MockMvcRequestBuilders.fileUpload() cannot merge if defaultRequest is set [SPR-10280] #14914
  • @Async executor ignored if decla...
Read more

3.2.1 Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • distinguish "none found" from "several found" in NoSuchBeanDefinitionException [SPR-10194] #14827
  • RequestMappingInfoHandlerMapping.handleNoMatch returns null instead of throwing an exception [SPR-10193] #14826
  • Provide a means to ignore the character set in ContentResultMatchers.contentType(MediaType) [SPR-10165] #14798
  • EntityManagerFactoryUtils.findEntityManagerFactory() does not search parent contexts if persistence unit name is unspecified [SPR-10160] #14793
  • AnnotationAwareOrderComparator does not work on Class objects [SPR-10152] #14785
  • Improve documentation regarding which @MVC annotations are required on interfaces when proxying [SPR-10132] #14765
  • Add support for X-Forwarded-Host in ServletUriComponentsBuilder [SPR-10110] #14743
  • Support SpEL in @initial-delay for task:scheduled [SPR-10102] #14735
  • ContentNegotiationManagerFactoryBean does not provide default value for "parameterName" as stated in doc [SPR-10101] #14734
  • Implement support of Jackson2 for MappingJacksonMessageConverter [SPR-10099] #14732
  • Support configurable charset for ResourcePropertySource [SPR-10096] #14729
  • Support OPTIONS method in the MVC Test framework [SPR-10093] #14726
  • Detect split packages at build time [SPR-9990] #14624
  • Use parameter names during MBeanInfo assembly [SPR-9985] #14619
  • Allow customization of request mappings [SPR-9935] #14568
  • ResourcePropertySource cannot load JDK 5 properties xml [SPR-9896] #14529
  • Allow TypeDescriptor array construction [SPR-9792] #14425
  • Infer "shutdown()" as destroy method for convenient EHCache setup using @Bean [SPR-9713] #14347
  • AnnotationAwareOrderComparator.sort has very misleading syntax [SPR-9625] #14259
  • WebApplicationInitializer with AnnotationConfigWebApplicationContext parent gets reset to null by ContextLoaderListener [SPR-9591] #14225
  • Relax jms:listener-container xsd:int attributes to xsd:string in order to allow for SpEL expressions [SPR-9553] #14187
  • Improve documentation for validation and data binding [SPR-9437] #14073
  • Improve support for registering Validator implementations in Spring MVC [SPR-9436] #14072
  • Consistency between scheduling/concurrent factory beans, resulting in inheritance improvement [SPR-9435] #14071
  • exposeAccessContext should also be available for JndiRmiClientInterceptor [SPR-9428] #14063
  • Update reference documentation on handling 401 response in the RestTemplate [SPR-9367] #14004
  • WebContentInterceptor.preHandle(request, response, handler), handler of type HandlerMethod not controller instance [SPR-9248] #13886
  • Map "no default value for field" MySQL error code to DataIntegrityViolationException [SPR-9237] #13875
  • SpringContextResourceAdapter does not fulfill whole JCA 1.5 contract [SPR-9162] #13800
  • Request to switch off heading & trailing whitespaces trim of path segments in AntPathMatcher [SPR-8687] #13329
  • Form tag should prepend the contextPath and servletPath if not present [SPR-8684] #13326
  • EhCacheCacheManager throws assertion error for ehcache configuration with only default cache configured [SPR-7955] #12610
  • @Primary and primary attribute of element are not considered for calls to getBean(Class) [SPR-7854] #12511
  • BufferedImageHttpMessageConverter not using defaultContentType [SPR-7763] #12419
  • Make ResponseStatusExceptionResolver handling of @ResponseStatus.reason internationalizable [SPR-6044] #10713
  • ThreadPoolExecutor waitForTasksToCompleteOnShutdown doesn't work as expected [SPR-5387] #10060

🪲 Bug Fixes

  • MBeanExporter/MBeanRegistrationSupport leaks ObjectNames in registeredBeans [SPR-10957] #15585
  • HttpEntityMethodProcessor does not support HttpEntity/ResponseEntity subclasses [SPR-10207] #14840
  • Support Date to String in JodaTimeConverters [SPR-10198] #14831
  • ClassCastException while using completeAutoload in Tiles 3 [SPR-10195] #14828
  • MockHttpServletRequest must not throw an exception on getParameter(null) [SPR-10192] #14825
  • FormHttpMessageConverter#writePart NPE on 'partBody.getClass()' [SPR-10187] #14820
  • UriComponents break UriTemplate serialization [SPR-10186] #14819
  • NoSuchMethodError for Aspects [SPR-10178] #14811
  • Attribute mode removed from annotation-driven definition in spring-task.xsd [SPR-10177] #14810
  • AbstractMessageConverterMethodProcessor returns allSupportedMediaTypes with HttpMediaTypeNotAcceptableException [SPR-10175] #14808
  • RequestMapping fileExtension filling interferes with registration of mapping methods [SPR-10173] #14806
  • Consider bridge methods in SpEL properties [SPR-10162] #14795
  • spring-aspects is compiled with JDK 1.7 compatibility [SPR-10161] #14794
  • Building 3.2.x branch with Java 7 fails - api depends on asmRepackJar [SPR-10151] #14784
  • Improve exceptions for multi-operand expressions [SPR-10146] #14779
  • NPE in PersistenceExceptionTranslationPostProcessor when instantiate a @Configurable Bean [SPR-10144] #14777
  • MatrixVariable values are not decoded [SPR-10140] #14773
  • error with tomcat 6 and spring 3.2 [SPR-10139] #14772
  • HttpServletBean requires overly narrow Environment type [SPR-10138] #14771
  • MessageSourceResourceBundle.containsKey throws NullPointerException [SPR-10136] #14769
  • SpEL support for static finals on interfaces [SPR-10125] #14758
  • Fix SpEL JavaBean compliance for setters [SPR-10122] #14755
  • ContentNegotiatingViewResolver - Upgrade from 3.1 to 3.2 causes ClassCastException [SPR-10119] #14752
  • Fix GenericConversionService search algorithm [SPR-10116] #14749
  • Regression in static setter method support [SPR-10115] #14748
  • Processing java.math.BigDecimal via Spring's ExtendedBeanInfo fails sporadically [SPR-10111] #14744
  • JMSTemplate.receive() and receiveSelected() don't use "receiveTimeout" property if in a transactio...
Read more

3.1.4 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • EhCacheCacheManager throws assertion error for ehcache configuration with only default cache configured [SPR-7955] #12610
  • SpringContextResourceAdapter does not fulfill whole JCA 1.5 contract [SPR-9162] #13800
  • exposeAccessContext should also be available for JndiRmiClientInterceptor [SPR-9428] #14063
  • WebApplicationInitializer with AnnotationConfigWebApplicationContext parent gets reset to null by ContextLoaderListener [SPR-9591] #14225
  • ResourcePropertySource cannot load JDK 5 properties xml [SPR-9896] #14529
  • Concurrent Consumers Not Allowed for Durable Subscription [SPR-10037] #14671
  • Unnecessary reading of java.lang.Object input stream [SPR-10058] #14691
  • Implement support of Jackson2 for MappingJacksonMessageConverter [SPR-10099] #14732
  • EntityManagerFactoryUtils.findEntityManagerFactory() does not search parent contexts if persistence unit name is unspecified [SPR-10160] #14793
  • RequestMappingInfoHandlerMapping.handleNoMatch returns null instead of throwing an exception [SPR-10193] #14826
  • Remove xsd versions from reference samples [SPR-10010] #14644
  • Use ExtendedBeanInfo on an as-needed basis only [SPR-9723] #14357
  • Documentation update regarding aspectjrt and aspectjweaver jars usage [SPR-8896] #13537

🪲 Bug Fixes

  • MemoryLeak in Cglib2AopProxy.ProxyCallbackFilter [SPR-8008] #12663
  • CachedIntrospectionResults cannot be cleared for null class loaders [SPR-9189] #13827
  • MimeMessageHelper does not handle attachment file name encoding [SPR-9258] #13896
  • BridgeMethodResolver throws exception when trying to find bridged method if method is declired in interface or it is abstract [SPR-9330] #13968
  • FreeMarkerConfigurationFactory's instance variable become enlarged whenever call create method. [SPR-9389] #14025
  • LocalVariableTableParameterNameDiscoverer doesn't support bridged methods [SPR-9429] #14065
  • MBeanExporter#destroy logs warnings about explicitly unregistered mbeans [SPR-9451] #14086
  • SimpleDriverDataSource doesn't use the connectionProperties specified [SPR-9461] #14096
  • Add migration instructions regarding component-scanning against "org" base package [SPR-9843] #14476
  • MockHttpServletResponse.getHeaderNames is incompatible with Servlet 3.0 [SPR-9885] #14518
  • ContextLoader incorrectly refreshes already refreshed context [SPR-9996] #14630
  • SpringBeanAutowiringInterceptor not closing ApplicationContext after EJB initialisation exception [SPR-10013] #14647
  • AbstractCachingViewResolver - caching redirect views leads to memory leak [SPR-10065] #14698
  • EclipseLink marks transaction RollbackOnly when applying timeout for "nonread" queries [SPR-10068] #14701
  • NamedParameterJdbcTemplate for "insert / select" clause, set NULL value causes JConnect 7 (Sybase) problem - java.io.IOException: JZ0SL: Unsupported SQL type 0. - Affects 3.1.3.RELEASE, works in 3.1.1.RELEASE [SPR-10084] #14717
  • HierarchicalUriComponents.equals() incorrectly returns false when other object is not an instance of OpaqueUriComponents [SPR-10088] #14721
  • SpEl bug while reading boolean fields [SPR-10091] #14724
  • DMLC: JMS resources are never cleared under certain conditions [SPR-10092] #14725
  • JMSTemplate.receive() and receiveSelected() don't use "receiveTimeout" property if in a transaction [SPR-10109] #14742
  • Processing java.math.BigDecimal via Spring's ExtendedBeanInfo fails sporadically [SPR-10111] #14744
  • SpEL support for static finals on interfaces [SPR-10125] #14758
  • MessageSourceResourceBundle.containsKey throws NullPointerException [SPR-10136] #14769
  • Consider bridge methods in SpEL properties [SPR-10162] #14795
  • AbstractMessageConverterMethodProcessor returns allSupportedMediaTypes with HttpMediaTypeNotAcceptableException [SPR-10175] #14808
  • Attribute mode removed from annotation-driven definition in spring-task.xsd [SPR-10177] #14810
  • FormHttpMessageConverter#writePart NPE on 'partBody.getClass()' [SPR-10187] #14820
  • MockHttpServletRequest must not throw an exception on getParameter(null) [SPR-10192] #14825
  • HttpEntityMethodProcessor does not support HttpEntity/ResponseEntity subclasses [SPR-10207] #14840
  • MBeanExporter/MBeanRegistrationSupport leaks ObjectNames in registeredBeans [SPR-10957] #15585
  • Handling of BeanInfo broken [SPR-10040] #14674
  • Deadlock in DefaultListableBeanFactory/DefaultSingletonBeanRegistry [SPR-10020] #14654
  • ReflectivePropertyAccessor should not consider bridge methods [SPR-9994] #14628
  • IntrospectionException: type mismatch between indexed and non-indexed methods [SPR-9943] #14576
  • Prevent duplicate @Import processing and ImportBeanDefinitionRegistrar invocation [SPR-9925] #14558
  • Ensure LineNumberReader is always closed in ResourceDatabasePopulator [SPR-9912] #14545
  • ExtendedBeanInfo exception - java.beans.IntrospectionException [SPR-9702] #14336
  • Deadlock between DefaultListableBeanFactory and DefaultSingletonBeanRegistry, perhaps due to lazily-instantiated aspect [SPR-7718] #12374

📔 Documentation

  • Doc: Bad snippet for CompositeCacheManager [SPR-9064] #13703
  • Error in doc on JCA CCI - ConnectionSpecConnectionFactoryAdapter [SPR-9466] #14101
  • Example shows deprecated ScheduledTimerTask [SPR-10050] #14683
  • Community Download site mentioned in the docs doesn't work [SPR-10171] #14804
  • Fix castor website [SPR-10189] #14822
  • Backport "Documentation update regarding aspectjrt and aspectjweaver jars usage" [SPR-10009] #14643

3.2 GA Release

17 Jan 15:45
Compare
Choose a tag to compare

⭐ New Features

  • Support external Javadoc links [SPR-10078] #14711
  • Support comments within SQL statements in ResourceDatabasePopulator [SPR-10075] #14708
  • Make DeferredResult extensible [SPR-10059] #14692
  • Unnecessary reading of java.lang.Object input stream [SPR-10058] #14691
  • FormHttpMessageConverter should have a MappingJackson2HttpMessageConverter in its partConverters [SPR-10055] #14688
  • Make it easier to integrate Tiles 3 with Spring MVC [SPR-10054] #14687
  • Add hook for before concurrent handling [SPR-10052] #14685
  • Rename MvcAsyncTask to WebAsyncTask [SPR-10051] #14684
  • Concurrent Consumers Not Allowed for Durable Subscription [SPR-10037] #14671
  • SpEL performance [SPR-10035] #14669
  • Support comments within SQL statements in JdbcTestUtils [SPR-9982] #14616
  • Possibility to disable WebApplicationInitializer [SPR-9977] #14611
  • Eclipse .classpath exports optional and provided dependencies [SPR-9656] #14290
  • Setting default charset in StringHttpMessageConverter [SPR-7904] #12559

🪲 Bug Fixes

  • DMLC: JMS resources are never cleared under certain conditions [SPR-10092] #14725
  • SpEl bug while reading boolean fields [SPR-10091] #14724
  • HierarchicalUriComponents.equals() incorrectly returns false when other object is not an instance of OpaqueUriComponents [SPR-10088] #14721
  • Replace SLF4J with ACL in TilesConfigurer for Tiles 3 [SPR-10077] #14710
  • POM of spring-aspects should have a dependency on aspectjweaver and not aspectjrt [SPR-10072] #14705
  • Tests in spring-test-mvc fail to execute in Eclipse [SPR-10070] #14703
  • EclipseLink marks transaction RollbackOnly when applying timeout for "nonread" queries [SPR-10068] #14701
  • AbstractCachingViewResolver - caching redirect views leads to memory leak [SPR-10065] #14698
  • 404 error when working with .htm servlet-mapping [SPR-10061] #14694
  • StandaloneMockMvcBuilder's setHandlerExceptionResolvers does not return the builder [SPR-10053] #14686
  • MVC test support breaks the contract of ServletRequestAttributes.getRequest() [SPR-10025] #14659
  • AbstractBeanFactory#markBeanAsCreated performance issue due to lock contention [SPR-9780] #14414
  • AbstractAutoProxyCreator and RequiredAnnotationBeanPostProcessor synchronized HashSet locking bottleneck [SPR-9711] #14345
  • MemoryLeak in Cglib2AopProxy.ProxyCallbackFilter [SPR-8008] #12663

📔 Documentation

  • Example shows deprecated ScheduledTimerTask [SPR-10050] #14683
  • Document new testing features in the "New in Spring 3.2" section of the reference manual [SPR-9941] #14574
  • Document WebApplicationContext support in the TestContext Framework [SPR-9864] #14497
  • Document which functionality gets implicitly activated by <context:component-scan /> [SPR-9808] #14441