[JAVA] fix ClassCastException validating an optional JsonArray which is a JsonNullable (#13448)

This commit is contained in:
ehealthexperts-rk
2022-09-17 16:37:09 +02:00
committed by GitHub
parent 517816d72b
commit 62d29c3be3
11 changed files with 133 additions and 110 deletions

View File

@@ -197,17 +197,19 @@ public class FileSchemaTestClass {
if (jsonObj.get("file") != null && !jsonObj.get("file").isJsonNull()) {
ModelFile.validateJsonObject(jsonObj.getAsJsonObject("file"));
}
JsonArray jsonArrayfiles = jsonObj.getAsJsonArray("files");
if (jsonArrayfiles != null) {
// ensure the json data is an array
if (!jsonObj.get("files").isJsonArray()) {
throw new IllegalArgumentException(String.format("Expected the field `files` to be an array in the JSON string but got `%s`", jsonObj.get("files").toString()));
}
if (jsonObj.get("files") != null && !jsonObj.get("files").isJsonNull()) {
JsonArray jsonArrayfiles = jsonObj.getAsJsonArray("files");
if (jsonArrayfiles != null) {
// ensure the json data is an array
if (!jsonObj.get("files").isJsonArray()) {
throw new IllegalArgumentException(String.format("Expected the field `files` to be an array in the JSON string but got `%s`", jsonObj.get("files").toString()));
}
// validate the optional field `files` (array)
for (int i = 0; i < jsonArrayfiles.size(); i++) {
ModelFile.validateJsonObject(jsonArrayfiles.get(i).getAsJsonObject());
};
// validate the optional field `files` (array)
for (int i = 0; i < jsonArrayfiles.size(); i++) {
ModelFile.validateJsonObject(jsonArrayfiles.get(i).getAsJsonObject());
};
}
}
}

View File

@@ -390,17 +390,19 @@ public class Pet {
if ((jsonObj.get("photoUrls") != null && !jsonObj.get("photoUrls").isJsonNull()) && !jsonObj.get("photoUrls").isJsonArray()) {
throw new IllegalArgumentException(String.format("Expected the field `photoUrls` to be an array in the JSON string but got `%s`", jsonObj.get("photoUrls").toString()));
}
JsonArray jsonArraytags = jsonObj.getAsJsonArray("tags");
if (jsonArraytags != null) {
// ensure the json data is an array
if (!jsonObj.get("tags").isJsonArray()) {
throw new IllegalArgumentException(String.format("Expected the field `tags` to be an array in the JSON string but got `%s`", jsonObj.get("tags").toString()));
}
if (jsonObj.get("tags") != null && !jsonObj.get("tags").isJsonNull()) {
JsonArray jsonArraytags = jsonObj.getAsJsonArray("tags");
if (jsonArraytags != null) {
// ensure the json data is an array
if (!jsonObj.get("tags").isJsonArray()) {
throw new IllegalArgumentException(String.format("Expected the field `tags` to be an array in the JSON string but got `%s`", jsonObj.get("tags").toString()));
}
// validate the optional field `tags` (array)
for (int i = 0; i < jsonArraytags.size(); i++) {
Tag.validateJsonObject(jsonArraytags.get(i).getAsJsonObject());
};
// validate the optional field `tags` (array)
for (int i = 0; i < jsonArraytags.size(); i++) {
Tag.validateJsonObject(jsonArraytags.get(i).getAsJsonObject());
};
}
}
if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) {
throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString()));