You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2020/10/21 17:24:52 UTC

[cxf] branch master updated: Fixing NPE in RuntimeCache

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 <dr...@gmail.com>
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) {