This commit replaces the lazy URI and headers initialization in the
reactive ServerHttpRequest in favor of eager initialization at
construction time. Both the URI and headers are nearly guaranteed to
be accessed for every request (URI for application path, headers for
"Origin" header).
Query params are still lazily parsed but parsing is idemptotent and
in the unlikely case of concurrent access (it's the framework that
typically accesses query params) it maybe parsed twice but should
be side effect free still.
Cookies are also parsed lazily and since we delegate to the "native"
request, it depends on the underlying runtime whether synchronization
is needed. This commit adds synchronization for the HttpServletRequest.
At present RxNetty, Reactor, and Undertow implementations provide
thread-safe access to cookies.
@ -46,13 +47,40 @@ public class ReactorServerHttpRequest extends AbstractServerHttpRequest {
@@ -46,13 +47,40 @@ public class ReactorServerHttpRequest extends AbstractServerHttpRequest {
@ -63,29 +91,6 @@ public class ReactorServerHttpRequest extends AbstractServerHttpRequest {
@@ -63,29 +91,6 @@ public class ReactorServerHttpRequest extends AbstractServerHttpRequest {
@ -49,46 +51,57 @@ public class RxNettyServerHttpRequest extends AbstractServerHttpRequest {
@@ -49,46 +51,57 @@ public class RxNettyServerHttpRequest extends AbstractServerHttpRequest {
@ -59,64 +59,56 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@@ -59,64 +59,56 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@ -128,7 +120,7 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@@ -128,7 +120,7 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@ -136,10 +128,28 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@@ -136,10 +128,28 @@ public class ServletServerHttpRequest extends AbstractServerHttpRequest {
@ -53,12 +53,33 @@ public class UndertowServerHttpRequest extends AbstractServerHttpRequest {
@@ -53,12 +53,33 @@ public class UndertowServerHttpRequest extends AbstractServerHttpRequest {
@ -69,22 +90,6 @@ public class UndertowServerHttpRequest extends AbstractServerHttpRequest {
@@ -69,22 +90,6 @@ public class UndertowServerHttpRequest extends AbstractServerHttpRequest {