Skip to content

Commit ab5fe26

Browse files
author
bnasslahsen
committed
Improve support of Webflux with Functional Endpoints
1 parent ce41a27 commit ab5fe26

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/MethodParameterPojoExtractor.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747

4848
class MethodParameterPojoExtractor {
4949

50-
private MethodParameterPojoExtractor() { }
50+
private MethodParameterPojoExtractor() {
51+
}
5152

5253
private static final Nullable NULLABLE_ANNOTATION = getNullable();
5354

@@ -90,9 +91,10 @@ private static Stream<MethodParameter> fromGetterOfField(Class<?> paramClass, Fi
9091

9192
private static Stream<MethodParameter> fromSimpleClass(Class<?> paramClass, Field field, String fieldNamePrefix) {
9293
Annotation[] fieldAnnotations = field.getDeclaredAnnotations();
93-
if (isOptional(field))
94-
fieldAnnotations = ArrayUtils.add(fieldAnnotations, NULLABLE_ANNOTATION);
9594
try {
95+
Nullable nullableField = NULLABLE_ANNOTATION;
96+
if (isOptional(field))
97+
fieldAnnotations = ArrayUtils.add(fieldAnnotations, nullableField);
9698
Annotation[] finalFieldAnnotations = fieldAnnotations;
9799
return Stream.of(Introspector.getBeanInfo(paramClass).getPropertyDescriptors())
98100
.filter(d -> d.getName().equals(field.getName()))
@@ -142,11 +144,17 @@ static void removeSimpleTypes(Class<?>... classes) {
142144
SIMPLE_TYPES.removeAll(Arrays.asList(classes));
143145
}
144146

147+
private class NullableFieldClass {
148+
@Nullable
149+
private String nullableField;
150+
}
151+
145152
private static Nullable getNullable() {
146-
return new Nullable() {
147-
public Class<? extends Annotation> annotationType() {
148-
return Nullable.class;
149-
}
150-
};
153+
try {
154+
return NullableFieldClass.class.getDeclaredField("nullableField").getAnnotation(Nullable.class);
155+
}
156+
catch (NoSuchFieldException e) {
157+
return null;
158+
}
151159
}
152160
}

0 commit comments

Comments
 (0)