This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new f82b1f6 Fixing NPE in RuntimeCache
f82b1f6 is described below
commit f82b1f6acafb50f4b4ab4c75e6013d7c59025b6c
Author: reta <[email protected]>
AuthorDate: Wed Oct 21 13:24:27 2020 -0400
Fixing NPE in RuntimeCache
---
.../apache/cxf/validation/BeanValidationProvider.java | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git
a/core/src/main/java/org/apache/cxf/validation/BeanValidationProvider.java
b/core/src/main/java/org/apache/cxf/validation/BeanValidationProvider.java
index 425832b..9652d48 100644
--- a/core/src/main/java/org/apache/cxf/validation/BeanValidationProvider.java
+++ b/core/src/main/java/org/apache/cxf/validation/BeanValidationProvider.java
@@ -36,6 +36,7 @@ import javax.validation.ValidationProviderResolver;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.executable.ExecutableValidator;
+import javax.validation.metadata.MethodDescriptor;
import javax.validation.spi.ValidationProvider;
import org.apache.cxf.common.logging.LogUtils;
@@ -204,15 +205,21 @@ public class BeanValidationProvider implements
AutoCloseable {
private final ConcurrentMap<Method, Boolean> returnedValues = new
ConcurrentHashMap<>();
public boolean shouldValidateParameters(final Validator validator,
final Method method) {
- return params.computeIfAbsent(method, m ->
validator.getConstraintsForClass(m.getDeclaringClass())
- .getConstraintsForMethod(m.getName(),
m.getParameterTypes())
- .hasConstrainedParameters());
+ return params.computeIfAbsent(method, m -> {
+ final MethodDescriptor constraint = validator
+ .getConstraintsForClass(m.getDeclaringClass())
+ .getConstraintsForMethod(m.getName(),
m.getParameterTypes());
+ return constraint != null &&
constraint.hasConstrainedParameters();
+ });
}
public boolean shouldValidateReturnedValue(final Validator validator,
final Method method) {
- return returnedValues.computeIfAbsent(method, m ->
validator.getConstraintsForClass(m.getDeclaringClass())
- .getConstraintsForMethod(m.getName(),
method.getParameterTypes())
- .hasConstrainedReturnValue());
+ return returnedValues.computeIfAbsent(method, m -> {
+ final MethodDescriptor constraint = validator
+ .getConstraintsForClass(m.getDeclaringClass())
+ .getConstraintsForMethod(m.getName(),
method.getParameterTypes());
+ return constraint != null &&
constraint.hasConstrainedReturnValue();
+ });
}
public boolean shouldValidateBean(final Validator validator, final
Class<?> clazz) {