Update ErrorPageFilter to only handle errors when `response.sendError`
has been called. This should allow custom @ExceptionHandlers to
completely handle errors and return custom status codes without
triggering the "Cannot forward to error page" log message.
The Javadoc for sendError states:
"The server defaults to creating the response to look like an
HTML-formatted server error page containing the specified message"
Where as setStatus states
"This method is used to set the return status code when there is
no error "
Fixes gh-2745
Update PropertySourcesPropertyValues so that collection values are only
added from a single PropertySource. Prior to this commit, given the
following:
PropertySource-A
list[0]=x
PropertySource-B
list[0]=y
list[1]=z
PropertySourcesPropertyValues would take `x` from A and `z` from B,
resulting in a binding of `[x,z]`. The updated code now returns the
more logical `[x]`.
Fixes gh-2611
Update HibernateJpaAutoConfiguration to catch LinkageError rather than
NoClassDefFoundError. Required due to the fact that JBoss EAP 6 wraps
NoClassDefFoundErrors.
Fixes gh-3605
Update Eclipse cleanup actions to only format changed lines. This will
hopefully help to prevent so many false diffs caused by differences
between Eclipse Luna and Eclipse Mars.
Refine commit 8a96481 to set the web environment to false if spring web
is not available in the classpath. Thanks to @mjustin for spotting that
mistake.
Closes gh-3856
Previously, deployment tests were storing the container archives in the
default location (that is `/tmp`) for a total weight of 160MB. In case
the temp directory is cleaned on CI, these have to be downloaded again.
We're now configuring cargo to store these archives in the home directory
instead. This should improve the speed and the stability of the
deployment tests
Closes gh-3861
SpringApplication wrongly expects spring-web to be on the classpath to
figure out whether or not the web environment should be enabled for a
custom context class.
We now properly guard this check so that the web environment is not
enabled (read: not checked) if `spring-web` is not available.
Closes gh-3856
The DataSource health indicator uses `JdbcTemplate` behind the scenes
but nothing was checking that it is actually available.
`DataSourcesHealthIndicatorConfiguration` is now disabled if
`spring-jdbc` is not on the classpath.
Fixes gh-3765
The annotation processor detects `@ConfigurationProperties` bean or
method definition and merges manual meta-data. The former step will fail
with a NPE if the annotation is not present on the classpath. This could
happen if the annotation processor is added to a module that is not
actually using Spring Boot.
We now have a defensive check that skips that steps but still attempts to
merge manual meta-data if present.
Closes gh-3720
Previously, BeanTypeRegistry would only look for a @Bean method
with no arguments when trying to determine the type that will be
created by a factory bean. This meant that the type produced by a
factory bean declared via a @Bean that has one or more arguments would
be unknown and any on missing bean conditions look for a bean of the
type produced by the factory bean would match in error.
This commit updates BeanTypeRegistry to, where possible, use the
factory method metadata for the bean definition when determining the
type that will be created. This allows it to determine the type for
factory bean created by @Bean methods that take arguments and also
avoids the use reflection to find the factory method. Where factory
method metadata is not available, the existing reflection-based
approach is used as a fallback.
Closes gh-3657