diff --git a/modules/swagger-core/src/main/java/io/swagger/util/ReflectionUtils.java b/modules/swagger-core/src/main/java/io/swagger/util/ReflectionUtils.java index 5c8d0c1b77..7822953dd1 100644 --- a/modules/swagger-core/src/main/java/io/swagger/util/ReflectionUtils.java +++ b/modules/swagger-core/src/main/java/io/swagger/util/ReflectionUtils.java @@ -145,7 +145,7 @@ public static boolean isConstructorCompatible(Constructor constructor) { * @return list of Fields */ public static List getDeclaredFields(Class cls) { - if (cls.equals(Object.class)) { + if (cls == null || Object.class.equals(cls)) { return Collections.emptyList(); } final List fields = new ArrayList(); diff --git a/modules/swagger-core/src/test/java/io/swagger/ReflectionUtilsTest.java b/modules/swagger-core/src/test/java/io/swagger/ReflectionUtilsTest.java index 5ac1d7b5da..c4853c56e9 100644 --- a/modules/swagger-core/src/test/java/io/swagger/ReflectionUtilsTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/ReflectionUtilsTest.java @@ -3,6 +3,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponses; import io.swagger.reflection.Child; +import io.swagger.reflection.IParent; import io.swagger.reflection.Parent; import io.swagger.util.ReflectionUtils; @@ -12,6 +13,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Type; import java.util.Arrays; +import java.util.Collections; import javax.ws.rs.Path; @@ -114,4 +116,10 @@ public void testDerivedAnnotation() { Assert.assertNotNull(annotation); Assert.assertEquals(annotation.value(), "parentInterfacePath"); } + + @Test + public void getDeclaredFieldsFromInterfaceTest() throws NoSuchMethodException { + final Class cls = IParent.class; + Assert.assertEquals(Collections.emptyList(), ReflectionUtils.getDeclaredFields(cls)); + } }