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);
+ }
+ }
+ });
+ }
}