Release Notes - Spring Framework - Version 3.1 RC1 - HTML format

Sub-task

  • [SPR-8455] - Capturing groups in regular expressions in @RequestMapping cause IndexOutOfBoundsException
  • [SPR-8667] - Update spring-orm template.mf to be inclusive of javax.jdo 3.0

Bug

  • [SPR-5307] - Type pattern with annotation in @DeclareParents does not work
  • [SPR-5749] - AspectJ pointcut advisors are not working with Groovy script beans
  • [SPR-5847] - Errors in EL expressions in User Guide
  • [SPR-6164] - a Uri Value is incorrectly extracted if it contains '.'.
  • [SPR-6268] - Annotated Groovy controllers don't work properly
  • [SPR-7483] - Optional @RequestParam with required=false no longer works in Spring 3.0.4 (compared to 3.0.2) when Controller extends interface
  • [SPR-7750] - Non compilable example in section "15.4.1 Intercepting requests - the HandlerInterceptor interface"
  • [SPR-7787] - Qualifiers in regular expressions in @RequestMapping do not work
  • [SPR-7840] - Spring SpEL - behavioural inconsistency when using greater than (>) operator in an expression
  • [SPR-7842] - DataBinder should be able to define a different strategy for BeanWrapperImpl how autogrowing should handle gaps in collection properties
  • [SPR-7900] - Annotation based injection into non public base classes does not work
  • [SPR-7956] - ConcurrentModificationException at Autowired
  • [SPR-8085] - Add [logger.isDebugEnabled] checks to [org.springframework.web.servlet.FrameworkServlet]
  • [SPR-8231] - ExceptionDepthComparator handle comparison of exact object is incorrect
  • [SPR-8297] - Debug logging forces instantiation of scoped beans
  • [SPR-8369] - RmiInvocationWrapper methods must not be declared as idempotent for Weblogic cluster
  • [SPR-8380] - Reference documentation has incorrect name for Eval tag's "htmlEscape" attribute
  • [SPR-8383] - By default, there is broken conversion String -> ContextResource
  • [SPR-8398] - DirectFieldAccessor fails to preserve shadowed fields
  • [SPR-8411] - @EnableTransactionManagement does not handle APC escalation
  • [SPR-8429] - Spring MVC returns 500 Internal Server Error when required HTTP header is missing
  • [SPR-8432] - Regression in support for property write method return type covariance
  • [SPR-8436] - Concurrency problem in CachingConnectionFactory on closing Session
  • [SPR-8437] - CachingConnectionFactory too eagerly Session.commit
  • [SPR-8439] - XmlBeanFactoryTests.testFileSystemResourceWithImport fails on Windows if path contains spaces
  • [SPR-8448] - @PathVariable values sent as query parameters in redirect unexpectedly
  • [SPR-8451] - Links in JIRA issues are not visible as links
  • [SPR-8457] - XMLEventStreamReader.getText() fails for COMMENT and ENTITY_REFERENCE events
  • [SPR-8459] - GenericConverter specifies Set<ConvertiblePair> getConvertibleTypes(), but ConvertiblePair doesn't override hashCode and equals.
  • [SPR-8462] - URL suffixes such as "/" and ".*" not considered when checking whether to send a 405, 406 or 415 code
  • [SPR-8464] - Proxied controller does not handle @RequestParam properly when using @EnableWebMvc
  • [SPR-8469] - Exception thrown when updating Hibernate search indexes when SessionFactory is configured using the AnnotationSessionFactoryBuilder
  • [SPR-8487] - RequestMappingHandlerAdapter.initInitBinderArgumentResolvers() does not add custom resolvers
  • [SPR-8488] - RequestMappingHandlerAdapter .setInitBinderArgumentResolvers() & .setArgumentResolvers() do provide full control
  • [SPR-8490] - JndiPropertySource getProperty throws Exception
  • [SPR-8492] - Transaction problem with AnnotationSessionFactoryBuilder and @EnableTransactionManagement
  • [SPR-8494] - @EnableTransactionManagement conflicts with <cache:annotation-driven />
  • [SPR-8496] - SpringServletContainerInitializer raises NullPointerException when no WebApplicationInitializer implementations are present
  • [SPR-8499] - Non-fatal exception thrown/logged by TypeConverterDelegate
  • [SPR-8505] - org.springframework.transaction bundle is missing import of org.jboss.resource.work
  • [SPR-8508] - FormatHelper formatMethodForMessage outputs each argument type as org.springframework.core.convert.TypeDescriptor rather than its actual type
  • [SPR-8512] - pdf documentation doesn't contain images
  • [SPR-8514] - FactoryBean-returning @Bean methods short-circuit normal @Autowired lifecycle in @Configuration classes
  • [SPR-8520] - 'bold text' referenced in documentation is not actually bold
  • [SPR-8522] - Annotation based bean creation fails with GsonBuilder
  • [SPR-8527] - ConfigurationClassPostProcessor throws IllegalStateException when its postProcessBeanDefinitionRegistry is called with different registries
  • [SPR-8536] - Regression in mvc handler mapping resolution
  • [SPR-8543] - @PathVariable incorrect matching
  • [SPR-8557] - SpringServletContainerInitializer in 3.1.M2 does not seem to work when using JSF 2.0 implementations
  • [SPR-8561] - Controller method argument without annotations results in 400 error if not provided
  • [SPR-8563] - <description> subelement in <map><entry></entry></map> throws BeanDefinitionParsingException
  • [SPR-8574] - Can not inject primitive values from property file using @Value annotation into servlet
  • [SPR-8593] - ModelAndViewContainer.view is overridden by ModelAndViewContainer.viewName
  • [SPR-8594] - PersistenceAnnotationBeanPostProcessor does not operate on the most specific persistence annotation declaration
  • [SPR-8596] - UrlPathHelper.getOriginatingQueryString incorrectly tests for forwarded request
  • [SPR-8598] - ConcurrentModificationException in InjectionMetadata class
  • [SPR-8612] - RedirectView always sends 302s in HTTP/1.0 (default) mode
  • [SPR-8621] - Problem using SpringBeanAutowiringInterceptor with @Value annotation in a Stateless Session Bean
  • [SPR-8632] - Cache Abstraction Documentation: minor typo
  • [SPR-8636] - When a controller method redirect to any url, the framework automatically appends all the model attributes in url query string even if those attributes are stored in session.
  • [SPR-8643] - LoadTimeWeavingConfiguration does not AUTODETECT aop.xml
  • [SPR-8646] - RedirectView does not URL encode expanded path variable
  • [SPR-8652] - Incorrect output of big numbers when using NamedParameterJdbcTemplate.queryForLong
  • [SPR-8653] - Spring 3.1 Cache abstraction - UnsupportedOperationException in AbstractCacheAspect ...
  • [SPR-8660] - Bridged method detection leads to false positive detection of autowired annotations
  • [SPR-8664] - Javadoc of JdbcOperations is incorrect
  • [SPR-8670] - Bug in Cache Abstraction document
  • [SPR-8676] - Content-Type on HttpForm Submissions Incorrectly Detected.
  • [SPR-8678] - Content negotiation should not take the context path into consideration
  • [SPR-8688] - wrong getBody() implementation in ServletServerHttpRequest
  • [SPR-8700] - ResponseEntity now returned as a literal response when used in conjunction with @ResponseBody
  • [SPR-8706] - UriUrils.decode() not properly rejecting invalid escaped URLs
  • [SPR-8713] - DefaultResponseErrorHandler IOException Bug
  • [SPR-8714] - 3.0.6 Map to Map conversion shallow copying maps causing unexpected results on upgrade from 3.0.5
  • [SPR-8718] - ClassCastException possible when converting to a target type that is a subtype of T for a Converter<S, T> convertible type.
  • [SPR-8720] - Incorrect link in javadoc to external javadoc
  • [SPR-8725] - Validator @Bean not initialized when extending from WebMvcConfigurationSupport
  • [SPR-8734] - Incorrect javadoc for AbstractResource.contentLength() -- looks like copy-paste error
  • [SPR-8749] - Need a way to disable behavior added in "Automatically expose @PathVariables in the Model" SPR-7543
  • [SPR-8918] - UriTemplate doesn't allow for ampersands as values for request parameters

Improvement

  • [SPR-1068] - Provide better options to specify attributes on a redirect
  • [SPR-1294] - Allow specifying which request attributes are included in RedirectView
  • [SPR-5308] - Double EL expression evaluation in JSP MessageTag
  • [SPR-5628] - Support for PUTting form-encoded data
  • [SPR-6796] - Provide precise control over the attributes used in a redirect scenario
  • [SPR-6801] - Authorize @ModelAttribute to play along with @RequestParam/@RequestHeader/...
  • [SPR-7038] - ConfigurableWebBindingInitializer should provide setAutoGrowNestedPaths method
  • [SPR-7210] - Views: setModelKey, setRenderedAttributes should be consistent
  • [SPR-7476] - Improvement to JDBC Named Parameter Replacement Strategy
  • [SPR-7480] - org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "xyz" gets translated to org.springframework.jdbc.UncategorizedSQLException
  • [SPR-7578] - Support for JDK 7's concurrency and collections updates (JSR-166y)
  • [SPR-7608] - @PathVariable and @ModelAttribute incompatibility prevent me from having a nice "update" handler
  • [SPR-7712] - Invalid MIME-type causes a 500 error
  • [SPR-7757] - ConcurrentModificationException in DefaultListableBeanFactory when using your own bean factory to register beans
  • [SPR-7911] - Better handling of 204 No Content in RestTemplate
  • [SPR-7931] - Checking for @XmlRootElement annotation should be made optional in Jaxb2Marshaller
  • [SPR-8001] - Not specifying a multipart resolver for a multipart POST of files results in org.springframework.web.bind.MissingServletRequestParameterException
  • [SPR-8038] - Register JndiPropertySource by default in StandardPortletEnvironment
  • [SPR-8184] - Allow default ParameterNameDiscoverer such that <constructor-arg name=".."> works by default for BeanFactory
  • [SPR-8235] - Update SQL error code mapping for H2 1.3.154
  • [SPR-8270] - Support for better schemaName auto-detection in the TableMetaDataProvider
  • [SPR-8309] - Spring OXM schema improvement for CastorMarshaller
  • [SPR-8359] - Need support for Quartz 2.0
  • [SPR-8390] - Update documentation of TransactionCallback.doInTransaction()
  • [SPR-8395] - AnnotationConfigContextLoader should not restrict the name of default configuration classes to ContextConfiguration
  • [SPR-8427] - LocalContainerEntityManagerFactoryBean#setPackagesToScan should accept String...
  • [SPR-8442] - Resolve ${...} placeholders in @PropertySource resource locations
  • [SPR-8444] - <spring:eval> tag doesn't support dot(.) operator for accessing map values
  • [SPR-8447] - MVC handler exceptions missing context
  • [SPR-8449] - SimpleUrlHandlerMapping Warning logs on startup
  • [SPR-8452] - Expose statusCodes field in SimpleMappingExceptionResolver as a read-only map.
  • [SPR-8453] - SpringOXM CastorMarshaller tests
  • [SPR-8454] - Introduce Registration objects in Spring MVC Java-based configuration API
  • [SPR-8465] - CollectionToObjectConverter uses the first element of a collection even when the collection could be assigned to an Object
  • [SPR-8476] - Use 400 Bad request instead of 500 when JSON payload is well formed but has an invalid structure
  • [SPR-8477] - When a cache can not be found from a @Cacheable annotation, no exception should be thrown to increase flexibility.
  • [SPR-8480] - Type conversion not applied on @Resource annotation
  • [SPR-8489] - Make BeanFactoryLocator aware of autowiring (and primary flag)
  • [SPR-8498] - Tasks created using task:scheduled-tasks never start if default-lazy-init="true"
  • [SPR-8501] - JavaMailSenderImpl should re-use protocol from mail session when creating transport instance
  • [SPR-8504] - Please allow disabling of Cache in EhCacheFactoryBean
  • [SPR-8515] - ResourceHttpRequestHandler should check for directory traversal
  • [SPR-8518] - SpEL: Unnecessary conversion of Map<?, ?> arguments
  • [SPR-8524] - AbstractCachingViewResolver does not cache negative lookups
  • [SPR-8529] - MockHttpServletResponse API is incompatible with Servlet 3.0 HttpServletResponse
  • [SPR-8532] - Add support for arguments of type javax.servlet.http.Part
  • [SPR-8544] - ExposeInvocationInterceptor should always be highest precedence
  • [SPR-8545] - Register JndiPropertySource by default in StandardServletEnvironment
  • [SPR-8548] - Introduce ConfigurableEnvironment#addActiveProfile(String)
  • [SPR-8549] - ContextCache should be keyed by MergedContextConfiguration instead of String
  • [SPR-8562] - Spring embedded database fails to execute script after encoding changes
  • [SPR-8570] - Document Lifecycle.stop() method synchronous or asynchronous behaviour
  • [SPR-8575] - Would be useful to have getContentAsString method in MockPageContext
  • [SPR-8579] - Typo in Spring Document
  • [SPR-8591] - Maybe typo in the reference document
  • [SPR-8592] - Make JDBC namespace more placeholder and SpEL friendly
  • [SPR-8611] - ContentNegotiatingViewResolver should be able to follow redirect:views
  • [SPR-8614] - Allow the read and connect timeout to be set on SimpleClientHttpRequestFactory
  • [SPR-8615] - Allow read and connect timeouts and request headers to be set on SimpleHttpInvokerRequestExecutor
  • [SPR-8617] - Required annotation processing can't be skipped by using bean definition meta element
  • [SPR-8642] - Throw a more specific exception for a missing part in a multipart request, providing access to the name of the missing part
  • [SPR-8655] - Support JDO 3.x
  • [SPR-8662] - UriTemplate takes wrong approach at encoding substituted template variables
  • [SPR-8690] - Clarify BeanFactory#containsBean Javadoc
  • [SPR-8691] - Clarify stereotype and exception translation Javadoc
  • [SPR-8712] - Expose BEST_MATCHING_PATTERN_ATTRIBUTE with RequestMappingHandlerMapping
  • [SPR-8730] - Allow for setting of custom KeyGenerator in <cache:annotation-driven /> XML namespace
  • [SPR-8751] - Support 'destroy method inference' for @Bean methods
  • [SPR-8752] - Refactor AnnotationUtils#findAllAnnotationAttributes to accommodate non-default class loader

New Feature

  • [SPR-5587] - Support Servlet 3.0 (JSR-315)
  • [SPR-5973] - Add additional "query builder" features to UriTemplate
  • [SPR-6464] - Flash Scope for Spring MVC (Without Spring Web Flow)
  • [SPR-7579] - Support for JDK 7's JDBC 4.1 (JSR-TBD)
  • [SPR-7812] - Allow custom request mapping conditions
  • [SPR-7943] - HDIV and Spring MVC integration
  • [SPR-8096] - Support Hibernate 4.0.x
  • [SPR-8138] - Introduce @EnableAspectJAutoProxy (equivalent to aop:aspectj-autoproxy)
  • [SPR-8275] - Support Quartz 2.0.x
  • [SPR-8341] - Spring OXM CastorMarshaller unmarshalling methods
  • [SPR-8386] - Introduce SmartContextLoader SPI
  • [SPR-8387] - Introduce a DelegatingSmartContextLoader
  • [SPR-8431] - Allow RedirectView to expose a bookmarkable URL
  • [SPR-8482] - Provide PropertySource implementation for command line arguments
  • [SPR-8483] - Allow access to named sections of a multipart request body
  • [SPR-8533] - Add support for load time weaving in JBoss AS7
  • [SPR-8585] - Add generic composite servlet filter
  • [SPR-8633] - Introduce a generic method for invoking any non-public method in ReflectionTestUtils

Refactoring

  • [SPR-8415] - Clarify use of "x-www-form-urlencoded" in reference documentation
  • [SPR-8430] - Extract base support class for Spring MVC config classes from WebMvcConfiguration
  • [SPR-8484] - Use AbstractView instead of HandlerMethodArgumentResolver to add @PathVariable values to the model

Task

  • [SPR-7724] - Public email address used in example
  • [SPR-7887] - Doc: JBossLoadTimeWeaver on JBoss 6.0
  • [SPR-8222] - Upgrade to JUnit 4.9
  • [SPR-8240] - Document TestContext support for @Configuration classes in the reference manual
  • [SPR-8401] - Document TestContext support for @ActiveProfiles in the reference manual
  • [SPR-8412] - Review relationship between .config and .annotation packages wrt @Enable annotations
  • [SPR-8540] - Change <#import "spring.ftl" as spring /> to <#import "/spring.ftl" as spring /> in documentation
  • [SPR-8541] - Document DelegatingSmartContextLoader
  • [SPR-8622] - Upgrade to JUnit 4.8.2
  • [SPR-8627] - Deprecate @ExpectedException

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.