Commit Graph

16592 Commits

Author SHA1 Message Date
Brian Clozel
58f58e404e Avoid null signals when resolving handler arguments
Prior to this commit, resolving an argument for a WebFlux controller
that's missing from the request and not required by the handler would
throw a NullPointerException in some cases.

This involves the conversion of the parameter (a `String` parameter type
might not trigger this behavior) and sending a `null` within a reactive
stream, which is illegal per the RS spec.

We now rely on a `Mono.justOrEmpty()` to handle those specific cases.

Issue: SPR-17050
(Cherry-picked from a7f97a1669)
2018-07-18 14:48:06 +02:00
Juergen Hoeller
c0040a5508 Polishing 2018-07-18 14:03:54 +02:00
Juergen Hoeller
55563c16b5 StringUtils.parseLocaleString detects variant without country
The parseLocale method also turns an empty locale into null now, compatible with parseLocaleString behavior.

Includes tests for parsing all available locales on the JVM, checking toString/toLanguageTag equality between parsed and original locale.

Issue: SPR-7598
Issue: SPR-16651

(cherry picked from commit cab35aa)
2018-07-18 14:03:30 +02:00
Juergen Hoeller
ae1d500bc3 UrlBasedViewResolver exposes redirect prefix as bean name
Issue: SPR-17045

(cherry picked from commit b8d2a16)
2018-07-18 13:59:32 +02:00
Juergen Hoeller
9134588a82 Never return null from AnnotationMetadata.getMetaAnnotationTypes
Issue: SPR-17046

(cherry picked from commit cacd14c)
2018-07-18 13:59:11 +02:00
Juergen Hoeller
d283424c82 Update ref doc references to Number/Currency/PercentStyleFormatter
Issue: SPR-17022

(cherry picked from commit 39d4550)
2018-07-18 13:58:45 +02:00
Andrew McCallum
6e019f9ed0 Correct method signature in code example
Closes gh-1887
2018-07-18 09:08:29 +02:00
Rossen Stoyanchev
d9d41b4398 Polish 2018-07-17 17:41:44 -04:00
Rossen Stoyanchev
eac0ddce13 Update URI Encoding section 2018-07-17 15:58:47 -04:00
Rossen Stoyanchev
a363a229eb Update URI links section after encoding changes
Issue: SPR-17039
2018-07-16 21:25:27 -04:00
Rossen Stoyanchev
2bf7c18203 Add TEMPLATE_AND_VALUES mode to DefaultUriBuilderFactory
Issue: SPR-17039
2018-07-16 21:25:09 -04:00
Rossen Stoyanchev
9458186e83 Polish DefaultUriBuilderFactory 2018-07-16 21:24:52 -04:00
Rossen Stoyanchev
d81ec55a60 Support for encode() in UriComponentsBuilder
The ability to request to encode before `build()`, and more importantly
before expanding, allows stricter encoding to be applied to URI vars
and consequently to neutralize the effect of characters with reserved
meaning in a URI.

Issue: SPR-17039
2018-07-16 21:24:16 -04:00
Stephane Nicoll
4c8d81bcb4 Fix typo
Issue: SPR-17042
2018-07-15 16:18:25 +02:00
Rossen Stoyanchev
6218db9831 Backport of InMemoryWebSession changes
- hooks to check expired sessions in both create and retrieve.
- maxSessions limit on the total number of sessions.
- getSessions method for management purposes
- removeExpiredSessions public API

Issue: SPR-17020, SPR-16713
2018-07-12 16:27:42 -04:00
Rossen Stoyanchev
7ea8ecb6ab Warn when SimpleAsyncTaskExecutor is used
Issue: SPR-16203
2018-07-11 11:21:49 -04:00
Guilherme Alan Ritter
8c1bc63c9d Fix typo
Closes gh-1880
2018-07-10 15:48:40 +02:00
Rossen Stoyanchev
f179181b40 Polish Reactive Spring Web section 2018-07-09 15:58:35 -04:00
Juergen Hoeller
eb3254d2a9 Polishing 2018-07-06 15:18:47 +02:00
Juergen Hoeller
6cae0650e6 Upgrade to Jackson 2.9.6 2018-07-06 01:42:07 +02:00
Juergen Hoeller
43868d2b72 Polishing 2018-07-06 01:39:34 +02:00
Juergen Hoeller
a8b747c21c Polishing 2018-07-04 22:55:38 +02:00
Juergen Hoeller
490b78a3d3 Polishing 2018-07-04 20:58:27 +02:00
Juergen Hoeller
1ab9e2ceda Polishing 2018-07-04 15:46:52 +02:00
Juergen Hoeller
a1d35c23aa ConcurrentModel.addAttribute javadoc: null value not supported
Issue: SPR-16831
2018-07-04 15:45:53 +02:00
Juergen Hoeller
99534a31ba MapSqlParameterSource.addValue declares nullable value parameter
Issue: SPR-16843

(cherry picked from commit d9c6318)
2018-07-04 15:45:32 +02:00
Sebastien Deleuze
c6dbfe42d3 Upgrade to Kotlin 1.2.51 2018-07-04 11:25:01 +02:00
Juergen Hoeller
acf9ea097a Polishing 2018-07-03 17:11:27 +02:00
Juergen Hoeller
decbb43757 Upgrade to Apache Johnzon 1.1.8 2018-07-03 16:23:51 +02:00
Juergen Hoeller
0480e75785 Polishing 2018-07-03 16:23:43 +02:00
Juergen Hoeller
ac1e2879e5 Consistent throwing of HttpMessageNotReadableException (5.0.x revision)
Includes specific fine-tuning of ProtobufHttpMessageConverter and JAXB2 based message converters, as well as revised javadoc for abstract base classes.

Issue: SPR-16995
2018-07-03 16:23:36 +02:00
Juergen Hoeller
ce0323fa8c ConcurrentReferenceHashMap caches EntrySet in volatile field
Includes an efficient implementation of isEmpty(), not relying on a full entry count but rather backing out once a non-empty hash segment has been found.

Issue: SPR-16994
2018-07-03 16:23:28 +02:00
Juergen Hoeller
0052c899bd Same method filtering in ConstructorResolver and getTypeForFactoryMethod
Issue: SPR-16999

(cherry picked from commit f2787cf)
2018-07-03 16:23:20 +02:00
Juergen Hoeller
8c07c6d099 Polishing 2018-07-01 02:35:35 +02:00
Juergen Hoeller
214fa9c2a0 Polishing 2018-06-29 22:43:13 +02:00
Juergen Hoeller
ea534b6820 Polishing 2018-06-29 20:07:53 +02:00
Juergen Hoeller
5a111125c1 Up-to-date coverage of task executor and scheduler variants
Includes a clarification of ThreadPoolExecutor configuration options and a note on early AsyncConfigurer initialization.

Issue: SPR-16944
Issue: SPR-16945

(cherry picked from commit d58c09b)
2018-06-29 20:07:44 +02:00
Juergen Hoeller
ac48c64b1a Upgrade to Mockito 2.19 and Mockito Kotlin 1.6 2018-06-28 18:13:59 +02:00
Juergen Hoeller
9a20ec9284 Polishing 2018-06-28 18:13:40 +02:00
Juergen Hoeller
03beee7b68 Upgrade to Tomcat 8.5.32, RxJava 2.1.16, Selenium 3.13 2018-06-28 17:33:30 +02:00
Juergen Hoeller
4be6bcae74 Polishing 2018-06-28 17:30:55 +02:00
Juergen Hoeller
6d0f8bf145 Support for new JsonMappingException wording in Jackson 2.9
Issue: SPR-16947
2018-06-28 16:42:35 +02:00
Juergen Hoeller
a631af80c1 Polishing
(cherry picked from commit 40efcc9)
2018-06-28 16:42:14 +02:00
Juergen Hoeller
3e64388b20 Conventions lazily retrieves shared ReactiveAdapterRegistry
Issue: SPR-16981

(cherry picked from commit b68e692)
2018-06-28 16:41:51 +02:00
Juergen Hoeller
d3b06a15f2 StringUtils.cleanPath retains plain pointer to current directory
Issue: SPR-16908

(cherry picked from commit 7a02e43)
2018-06-28 16:41:44 +02:00
Juergen Hoeller
75f26eec98 Fix FreeMarker escaping regression for messages and separators
Issue: SPR-16951

(cherry picked from commit 08e1c8c)
2018-06-28 16:41:33 +02:00
Juergen Hoeller
4402336c44 MimeTypeUtils lazily initializes SecureRandom for multipart boundary
Issue: SPR-16974

(cherry picked from commit 847202c)
2018-06-28 16:41:18 +02:00
Juergen Hoeller
e388ddfdde WebHttpHandlerBuilder retains ApplicationContext in copy constructor
Issue: SPR-16972

(cherry picked from commit 2a15962)
2018-06-28 16:41:13 +02:00
Napster
f83a01e573 Undertow WebSocket sessions share ByteBufferPool
Issues: SPR-16957
2018-06-25 17:59:34 -03:00
Brian Clozel
d1c9401dc2 WebClient writes Content-Length for Mono bodies
In SPR-16892, the `EncoderHttpMessageWriter` has been improved to write
`"Content-Length"` HTTP response headers if the response body is of type
`Mono` (i.e. the actual content length is easily accessible without
buffering a possibly large response body). That change was relying on
the fact that the server side is using a `ChannelSendOperator` to delay
the writing of the body until the first signal is received.

This strategy is not effective on the client side, since no such channel
operator is used for `WebClient`. This commit improves
`EncoderHttpMessageWriter` and delays, for `Mono` HTTP message bodies
only, the writing of the body so that we can write the
`"Content-Length"` header information once we've got the body resolved.

Issue: SPR-16949
(Cherry-picked from 4a26f93a0d)
2018-06-19 11:52:26 +02:00