Skip to content

Commit 5ce4898

Browse files
committed
Fix NPE in ReflectionUtils when scaning interfaces
1 parent b9dc5e7 commit 5ce4898

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

modules/swagger-core/src/main/java/io/swagger/util/ReflectionUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public static boolean isConstructorCompatible(Constructor<?> constructor) {
145145
* @return list of Fields
146146
*/
147147
public static List<Field> getDeclaredFields(Class<?> cls) {
148-
if (cls.equals(Object.class)) {
148+
if (cls == null || Object.class.equals(cls)) {
149149
return Collections.emptyList();
150150
}
151151
final List<Field> fields = new ArrayList<Field>();

modules/swagger-core/src/test/java/io/swagger/ReflectionUtilsTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.swagger.annotations.ApiOperation;
44
import io.swagger.annotations.ApiResponses;
55
import io.swagger.reflection.Child;
6+
import io.swagger.reflection.IParent;
67
import io.swagger.reflection.Parent;
78
import io.swagger.util.ReflectionUtils;
89

@@ -12,6 +13,7 @@
1213
import java.lang.reflect.Method;
1314
import java.lang.reflect.Type;
1415
import java.util.Arrays;
16+
import java.util.Collections;
1517

1618
import javax.ws.rs.Path;
1719

@@ -114,4 +116,10 @@ public void testDerivedAnnotation() {
114116
Assert.assertNotNull(annotation);
115117
Assert.assertEquals(annotation.value(), "parentInterfacePath");
116118
}
119+
120+
@Test
121+
public void getDeclaredFieldsFromInterfaceTest() throws NoSuchMethodException {
122+
final Class cls = IParent.class;
123+
Assert.assertEquals(Collections.emptyList(), ReflectionUtils.getDeclaredFields(cls));
124+
}
117125
}

0 commit comments

Comments
 (0)