Browse Source

Synchronise PathPatternParser access

This commit adds a synchronized block around the PathPatternParser,
since it is not thread-safe.
pull/1329/head
Arjen Poutsma 9 years ago
parent
commit
fcaf42507a
  1. 8
      spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java

8
spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java

@ -77,7 +77,7 @@ public abstract class RequestPredicates { @@ -77,7 +77,7 @@ public abstract class RequestPredicates {
*/
public static RequestPredicate path(String pattern) {
Assert.notNull(pattern, "'pattern' must not be null");
return new PathPatternPredicate(DEFAULT_PATTERN_PARSER.parse(pattern));
return pathPredicates(DEFAULT_PATTERN_PARSER).apply(pattern);
}
/**
@ -91,7 +91,11 @@ public abstract class RequestPredicates { @@ -91,7 +91,11 @@ public abstract class RequestPredicates {
*/
public static Function<String, RequestPredicate> pathPredicates(PathPatternParser patternParser) {
Assert.notNull(patternParser, "'patternParser' must not be null");
return pattern -> new PathPatternPredicate(patternParser.parse(pattern));
return pattern -> {
synchronized (patternParser) {
return new PathPatternPredicate(patternParser.parse(pattern));
}
};
}
/**

Loading…
Cancel
Save