Merge pull request #11692 from izeye:null-check

* pr/11692:
  Add missing null checks and volatile keyword
pull/11716/merge
Stephane Nicoll 7 years ago
commit 34b19de68f

@ -43,9 +43,9 @@ public abstract class ApplicationContextServerWebExchangeMatcher<C>
private final Class<? extends C> contextClass; private final Class<? extends C> contextClass;
private C context; private volatile C context;
private Object contextLock = new Object(); private final Object contextLock = new Object();
public ApplicationContextServerWebExchangeMatcher(Class<? extends C> contextClass) { public ApplicationContextServerWebExchangeMatcher(Class<? extends C> contextClass) {
Assert.notNull(contextClass, "Context class must not be null"); Assert.notNull(contextClass, "Context class must not be null");
@ -68,8 +68,10 @@ public abstract class ApplicationContextServerWebExchangeMatcher<C>
protected C getContext(ServerWebExchange exchange) { protected C getContext(ServerWebExchange exchange) {
if (this.context == null) { if (this.context == null) {
synchronized (this.contextLock) { synchronized (this.contextLock) {
this.context = createContext(exchange); if (this.context == null) {
initialized(this.context); this.context = createContext(exchange);
initialized(this.context);
}
} }
} }
return this.context; return this.context;

@ -45,7 +45,7 @@ public abstract class ApplicationContextRequestMatcher<C> implements RequestMatc
private volatile C context; private volatile C context;
private Object contextLock = new Object(); private final Object contextLock = new Object();
public ApplicationContextRequestMatcher(Class<? extends C> contextClass) { public ApplicationContextRequestMatcher(Class<? extends C> contextClass) {
Assert.notNull(contextClass, "Context class must not be null"); Assert.notNull(contextClass, "Context class must not be null");
@ -68,8 +68,10 @@ public abstract class ApplicationContextRequestMatcher<C> implements RequestMatc
private C getContext(HttpServletRequest request) { private C getContext(HttpServletRequest request) {
if (this.context == null) { if (this.context == null) {
synchronized (this.contextLock) { synchronized (this.contextLock) {
this.context = createContext(request); if (this.context == null) {
initialized(this.context); this.context = createContext(request);
initialized(this.context);
}
} }
} }
return this.context; return this.context;

Loading…
Cancel
Save