Skip to content

Commit 1ddf190

Browse files
committed
Merge pull request #1254 from lugaru1234/issue1253
Fixes #1253: ArrayIndexOutOfBoundsException has been fixed
2 parents c4e00f4 + ca697d4 commit 1ddf190

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/utils/ReflectionUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ public static Method findMethod(Method methodToFind, Class<?> cls) {
109109
}
110110
Class<?>[] pt = method.getParameterTypes();
111111
Type[] gpt = method.getGenericParameterTypes();
112+
if (pTypes.length != pt.length || gpTypes.length != gpt.length) {
113+
continue;
114+
}
112115
for (int j = 0; j < pTypes.length; j++) {
113116
Class<?> parameterType = pTypes[j];
114117
if (!(pt[j].equals(parameterType) || (!gpt[j].equals(gpTypes[j]) && pt[j].isAssignableFrom(parameterType)))) {

modules/swagger-jaxrs/src/test/scala/ReaderTest.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ class ReaderTest extends FlatSpec with Matchers {
141141

142142
val methodFromInterface = swagger.getPaths().get("/pet/{petId5}").getGet
143143
methodFromInterface should not equal (null)
144+
145+
swagger.getPaths().get("/pet/{petId6}").getGet should not equal (null)
144146
}
145147

146148
it should "scan implicit params" in {

modules/swagger-jaxrs/src/test/scala/resources/DescendantResource.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,9 @@ public Response overriddenMethodWithoutTypedParam(@ApiParam(value = "ID of pet t
5353
public Response methodFromInterface(@ApiParam(value = "ID of pet to return") Number petId) {
5454
return null;
5555
}
56+
57+
@Override
58+
public Response methodFromInterface(@ApiParam(value = "Method to check ArrayIndexOutOfBoundsException") @PathParam("petId6") Number petId, String str) {
59+
return null;
60+
}
5661
}

modules/swagger-jaxrs/src/test/scala/resources/InterfaceResource.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,15 @@ public interface InterfaceResource {
2121
@ApiResponse(code = 404, message = "Pet not found")})
2222
Response methodFromInterface(
2323
@ApiParam(value = "ID of pet to return") @PathParam("petId5") Number petId);
24+
25+
@GET
26+
@Path("/{petId6}")
27+
@ApiOperation(value = "Find pet by ID",
28+
notes = "Returns a single pet",
29+
response = String.class
30+
)
31+
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
32+
@ApiResponse(code = 404, message = "Pet not found")})
33+
Response methodFromInterface(
34+
@ApiParam(value = "Method to check ArrayIndexOutOfBoundsException") @PathParam("petId6") Number petId, String str);
2435
}

0 commit comments

Comments
 (0)