This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 4877917  [SCB-2331] sLooping is not necessary for basic data types, 
and null pointer judgment. (#2562)
4877917 is described below

commit 48779171c3eb44fdb0781c26126456ebb7d6239e
Author: Alne <[email protected]>
AuthorDate: Fri Sep 10 15:02:49 2021 +0800

    [SCB-2331] sLooping is not necessary for basic data types, and null pointer 
judgment. (#2562)
---
 .../generator/core/AbstractOperationGenerator.java | 27 +++++++++++++++-------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/AbstractOperationGenerator.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/AbstractOperationGenerator.java
index 56734d0..4ed86e9 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/AbstractOperationGenerator.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/AbstractOperationGenerator.java
@@ -24,6 +24,7 @@ import static 
org.apache.servicecomb.swagger.generator.SwaggerGeneratorUtils.isC
 import static 
org.apache.servicecomb.swagger.generator.SwaggerGeneratorUtils.postProcessOperation;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
 import java.util.*;
@@ -419,17 +420,27 @@ public abstract class AbstractOperationGenerator 
implements OperationGenerator {
 
   private void convertAnnotationProperty(Class<?> beanClass) {
     Map<String, Model> definitions = swagger.getDefinitions();
-    if (definitions == null) {
+    if (definitions == null){
       return;
     }
+    Field[] fields = beanClass.getDeclaredFields();
     Model model = definitions.get(beanClass.getSimpleName());
-    Arrays.stream(beanClass.getDeclaredFields()).forEach(field -> {
-      boolean requireItem = 
Arrays.stream(field.getAnnotations()).anyMatch(annotation ->
-          
NOT_NULL_ANNOTATIONS.contains(annotation.annotationType().getSimpleName()));
-      if (requireItem) {
-        model.getProperties().get(field.getName()).setRequired(true);
-      }
-    });
+    if (fields == null || model == null) {
+      return;
+    }
+    Map<String, Property> properties = model.getProperties();
+    if (properties != null) {
+      Arrays.stream(fields).forEach(field -> {
+        boolean requireItem = Arrays.stream(field.getAnnotations()).
+                anyMatch(annotation -> 
NOT_NULL_ANNOTATIONS.contains(annotation.annotationType().getSimpleName()));
+        if (requireItem) {
+          Property property = properties.get(field.getName());
+          if(property != null){
+            property.setRequired(true);
+          }
+        }
+      });
+    }
   }
 
 

Reply via email to