Skip to content

Commit 5b7f778

Browse files
authored
Merge pull request #3544 from TomEvers/feature/enum_negative_long
Fix deserializing enum with negative Long values
2 parents b344a67 + 5db9608 commit 5b7f778

File tree

3 files changed

+3
-1
lines changed

3 files changed

+3
-1
lines changed

modules/swagger-core/src/test/java/io/swagger/v3/core/deserialization/JsonDeserializationTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ public void deserializeLongSchema() throws IOException {
256256
assertEquals(s.getEnum().get(0), 2147483647);
257257
assertEquals(s.getEnum().get(1), 3147483647L);
258258
assertEquals(s.getEnum().get(2), 31474836475505055L);
259+
assertEquals(s.getEnum().get(3), -9223372036854775808L);
259260
}
260261

261262
@Test

modules/swagger-core/src/test/resources/specFiles/oas3_2.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,7 @@ paths:
912912
- 2147483647
913913
- 3147483647
914914
- 31474836475505055
915+
- -9223372036854775808
915916
responses:
916917
'200':
917918
description: success!

modules/swagger-models/src/main/java/io/swagger/v3/oas/models/media/IntegerSchema.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ protected Number cast(Object value) {
5151
if (value != null) {
5252
try {
5353
Number casted = NumberFormat.getInstance().parse(value.toString());
54-
if (casted.longValue() <= Integer.MAX_VALUE) {
54+
if (Integer.MIN_VALUE <= casted.longValue() && casted.longValue() <= Integer.MAX_VALUE) {
5555
return Integer.parseInt(value.toString());
5656
} else {
5757
return Long.parseLong(value.toString());

0 commit comments

Comments
 (0)