Commit Graph

4629 Commits

Author SHA1 Message Date
Madhura Bhave
8528f7c140 Make spring.profiles.include behave consistently
Previously, if profiles were included via a property source with higher
precedence than config files, profiles activated via config files would
not be taken into account. This commit makes spring.profiles.include
behave consistently where it adds to active profiles rather than replacing
them, regardless of property source.

Fixes gh-15344
2019-02-08 10:28:52 -08:00
Brian Clozel
99656b9dd8 Merge branch '2.1.x' 2019-02-08 18:35:12 +01:00
Brian Clozel
72c8e5d366 Collect HTTP trace at commit time for WebFlux
Prior to this commit, the `HttpTraceWebFilter` would collect the
response information (status and headers) for tracing purposes, after
the handling chain is done with the exchange - inside a
`doAfterSuccessOrError`.

Once the handler has processed the exchange, there is no strong
guarantee about the HTTP resources being still present. Depending on the
web server implementation, HTTP resources (including HTTP header maps)
might be recycled, because pooled in the first place.

This commit moves the collection and processing of the HTTP trace right
before the response is committed. This removes the need to handle
special cases with exceptions, since by that time all exception handlers
have processed the response and the information that we extract is the
information that's about to be written to the network.

Fixes gh-15819
2019-02-08 18:16:39 +01:00
Brian Clozel
e8fef97335 Merge branch '2.1.x' 2019-02-08 12:29:39 +01:00
Brian Clozel
cba6079b7b Log unhandled server exceptions in WebFlux
Prior to this commit, errors unhandled by custom `WebExceptionHandler`
and resulting in an HTTP 500 status would not be logged at ERROR level,
giving no information to developers about the actual exception.

This commit ensures that such exceptions are logged at the ERROR level
with their exception. By the time the exception hits the
`DefaultErrorWebExceptionHandler`, if the response is already committed
or if the exception is due to a client disconnecting, the error is
delegated to Framework support as Spring Boot won't be able to render an
error page as expected.

Fixes gh-15769
2019-02-08 12:25:05 +01:00
Stephane Nicoll
380d7ec01c Merge branch '2.1.x' 2019-02-08 09:21:06 +01:00
Johnny Lim
885c28891b Polish
Closes gh-15873
2019-02-08 09:20:15 +01:00
Stephane Nicoll
9eccf6c367 Merge branch '2.1.x' 2019-02-08 08:45:43 +01:00
dreis2211
48295e16fc Fix assertion
Closes gh-15871
2019-02-08 08:45:12 +01:00
Madhura Bhave
e3fad4e973 Merge branch '2.1.x' 2019-02-07 16:42:10 -08:00
Madhura Bhave
dc31f617b3 Document limitations of YAML documents & profile-specific files
Fixes gh-15790
2019-02-07 16:40:53 -08:00
Andy Wilkinson
88f563ab4f Merge branch '2.1.x' 2019-02-07 14:36:19 +00:00
Andy Wilkinson
688eb894d0 Start building against Micrometer 1.1.3 snapshots
See gh-15869
2019-02-07 12:44:10 +00:00
Andy Wilkinson
4efca4a455 Start building against Spring Session Bean-SR3 snapshots
See gh-15868
2019-02-07 12:43:26 +00:00
Andy Wilkinson
01693bb1fd Start building against Spring Kafka 2.2.4 snapshots
See gh-15867
2019-02-07 12:42:45 +00:00
Andy Wilkinson
474a706cc3 Start building against Spring Integration 5.1.3 snapshots
See gh-15866
2019-02-07 12:42:09 +00:00
Andy Wilkinson
245d3cf9f4 Start building against Spring AMQP 2.1.4 snapshots
See gh-15865
2019-02-07 12:41:28 +00:00
Andy Wilkinson
96cf7b1e64 Start building against Spring Data Lovelace-SR5 snapshots
See gh-15864
2019-02-07 12:40:49 +00:00
Andy Wilkinson
333fe77f58 Start building against Spring Security 5.1.4 snapshots
See gh-15863
2019-02-07 12:40:11 +00:00
Andy Wilkinson
1f4927b65d Start building against Spring Framework 5.1.5 snapshots
See gh-15862
2019-02-07 12:39:33 +00:00
Stephane Nicoll
b169406bbe Polish contribution
Closes gh-15853
2019-02-06 09:14:06 +01:00
Kedar Joshi
b43718c360 Polish
See gh-15853
2019-02-06 09:13:53 +01:00
Andy Wilkinson
ecb7e240eb Merge branch '2.1.x' 2019-02-05 12:33:19 +00:00
Andy Wilkinson
59c66eaf41 Correct documented path for locked synchronizer's identity hashcode
Closes gh-15847
2019-02-05 12:30:46 +00:00
Andy Wilkinson
ebcc53a9b7 Include tasks with custom triggers in scheduledtasks endpoint output
Closes gh-15815
2019-02-05 12:12:07 +00:00
Andy Wilkinson
89bf486d0c Merge branch '2.1.x' 2019-02-05 11:39:37 +00:00
Andy Wilkinson
1f67707509 Fix cast in TestRestTemplateContextCustomizer
Closes gh-15843
2019-02-05 11:39:25 +00:00
Andy Wilkinson
b3abd25e22 Merge branch '2.1.x' 2019-02-05 11:11:07 +00:00
Andy Wilkinson
8a7958ef55 Do not use reflection to fall back to JDKs jar URLStreamHandler
Closes gh-15844
2019-02-05 10:59:32 +00:00
Andy Wilkinson
45cc649c7d Merge branch '2.1.x' 2019-02-04 12:36:33 +00:00
Andy Wilkinson
82bc87560c Use AssertJ’s exception assertions rather than fail
Closes gh-15761
2019-02-04 11:48:26 +00:00
Stephane Nicoll
a84a6c34ba Merge branch '2.1.x' 2019-02-02 20:22:22 +01:00
Stephane Nicoll
9357a92503 Add reference to Codecentric's SOAP Web Services starter 2019-02-02 20:21:57 +01:00
Andy Wilkinson
342bced125 Merge branch '2.1.x' 2019-02-01 13:48:02 +00:00
Andy Wilkinson
2650a07dc9 Leave module-info.class in root of archive when repackaging
Closes gh-15810
2019-02-01 13:47:42 +00:00
Stephane Nicoll
5269ea5536 Polish contribution
Closes gh-15754
2019-01-31 16:33:38 +01:00
Johnny Lim
6603033bbc Polish SessionConfigurationImportSelector.selectImports()
See gh-15754
2019-01-31 16:33:02 +01:00
Stephane Nicoll
002fa405a8 Merge branch '2.1.x' 2019-01-31 16:26:37 +01:00
Stephane Nicoll
ede23caace Polish "Inject Map directly rather than via ObjectProvider"
Closes gh-15798
2019-01-31 16:25:18 +01:00
ayudovin
3a2e85ce75 Inject Map directly rather than via ObjectProvider
See gh-15798
2019-01-31 16:24:18 +01:00
Stephane Nicoll
c5675de666 Polish "Handle AccessControlException in JspTemplateAvailabilityProvider"
Closes gh-15778
2019-01-31 16:21:48 +01:00
ayudovin
81273bdf9a Handle AccessControlException in JspTemplateAvailabilityProvider
See gh-15778
2019-01-31 16:20:19 +01:00
Stephane Nicoll
5e2d5959f3 Polish 2019-01-29 15:56:48 +01:00
dreis2211
5b3e1aa21a Optimize ConfigurationPropertyName
This commit changes the iteration order when checking for element
equality. This is based on the educated guess that child elements
will likely differ while parents will probably be the same.

E.g. comparing "spring.banner.charset" with "spring.banner.location"
will now first check "charset" against "location" and thus saves some
cycles for elements that will be the same.

See gh-15782
2019-01-28 11:39:40 +00:00
Andy Wilkinson
0e77445a9a Polish "Optimize BeanPropertyName.toDashedForm()"
See gh-15779
2019-01-28 11:37:55 +00:00
dreis2211
3c8d9d00e5 Optimize BeanPropertyName.toDashedForm()
See gh-15779
2019-01-28 11:37:49 +00:00
Andy Wilkinson
47b378e373 Derive StringBuilder's size from number of elements
Previously, when ConfigurationPropertyName was building the String
returned from toString() it would use a StringBuilder with the
default initial capacity of 16. For properties with several
elements this was likely to be too small resulting in the builder's
buffer being resized.

This commit sizes the StringBuilder as a multiple of the number of
elements in the name, attempting to strike a balance between
allocating a StringBuilder with an initial capacity that's too
large and wastes memory and an initial capacity that's too small
and requires resizing.

See gh-15760
2019-01-28 11:34:28 +00:00
Andy Wilkinson
39e2aaa41c Size the ElementsParser based on expected number of elements
Previously, the ElementsParser would be created using its default
capacity of 6 even when parsing a String that is expected to
produce a single element.

This commit updates ConfigurationPropertyName to create an
ElementsParser with a capacity of 1 when parsing a String that should
contain only a single element.

See gh-15760
2019-01-28 11:34:28 +00:00
Andy Wilkinson
8ec6c372e4 Do not expand ElementsParser until size equals storage length
Previously, ElementsParser would expand its internal storage when the
size of the storage was <= the end index of the element being parsed,
irrespective of how many elements had been stored. This led to
expansion of the storage, even for a source that contains a single
element, if the end of the element was at an index greater than the
size of the storage.

This commit updates ElementsParser to resize its storage when the size
(the number of elements that have been stored) is equal to the size of
the storage.

See gh-15760
2019-01-28 11:34:28 +00:00
Andy Wilkinson
2956b86035 Avoid creating ConfigurationPropertyName just to get its Elements
See gh-15760
2019-01-28 11:34:28 +00:00