Skip to content

Commit d82ca75

Browse files
authored
Type check of array element only when array is not empty. fix #21276 (#21571)
1 parent faf6924 commit d82ca75

File tree

13 files changed

+17
-17
lines changed

13 files changed

+17
-17
lines changed

modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/anyof_model.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
8181
{{^isPrimitiveType}}
8282
{{#isArray}}
8383
List<?> list = (List<?>) value.getActualInstance();
84-
if (list.get(0) instanceof {{{items.dataType}}}) {
84+
if (!list.isEmpty() && list.get(0) instanceof {{{items.dataType}}}) {
8585
JsonArray array = adapter{{#sanitizeDataType}}{{{dataType}}}{{/sanitizeDataType}}.toJsonTree(({{{dataType}}})value.getActualInstance()).getAsJsonArray();
8686
elementAdapter.write(out, array);
8787
return;
@@ -252,7 +252,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
252252
if (instance instanceof {{#isArray}}List<?>{{/isArray}}{{^isArray}}{{{dataType}}}{{/isArray}}) {
253253
{{#isArray}}
254254
List<?> list = (List<?>) instance;
255-
if (list.get(0) instanceof {{{items.dataType}}}) {
255+
if (!list.isEmpty() && list.get(0) instanceof {{{items.dataType}}}) {
256256
super.setActualInstance(instance);
257257
return;
258258
}

modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/oneof_model.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
9494
{{^isPrimitiveType}}
9595
{{#isArray}}
9696
List<?> list = (List<?>) value.getActualInstance();
97-
if (list.get(0) instanceof {{{items.dataType}}}) {
97+
if (!list.isEmpty() && list.get(0) instanceof {{{items.dataType}}}) {
9898
JsonArray array = adapter{{#sanitizeDataType}}{{{dataType}}}{{/sanitizeDataType}}.toJsonTree(({{{dataType}}})value.getActualInstance()).getAsJsonArray();
9999
elementAdapter.write(out, array);
100100
return;
@@ -330,7 +330,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
330330
if (instance instanceof {{#isArray}}List<?>{{/isArray}}{{#isMap}}Map<?, ?>{{/isMap}}{{^isMap}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isMap}}) {
331331
{{#isArray}}
332332
List<?> list = (List<?>) instance;
333-
if (list.get(0) instanceof {{{items.dataType}}}) {
333+
if (!list.isEmpty() && list.get(0) instanceof {{{items.dataType}}}) {
334334
super.setActualInstance(instance);
335335
return;
336336
}

modules/openapi-generator/src/main/resources/kotlin-client/anyof_class.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ import java.io.IOException
110110
if (value.actualInstance is {{#isArray}}List<*>{{/isArray}}{{^isArray}}{{{dataType}}}{{/isArray}}) {
111111
{{#isArray}}
112112
val list = value.actualInstance as List<Any>
113-
if (list.get(0) is {{{items.dataType}}}) {
113+
if (!list.isEmpty() && list.get(0) is {{{items.dataType}}}) {
114114
val array = adapter{{#sanitizeGeneric}}{{{dataType}}}{{/sanitizeGeneric}}.toJsonTree(value.actualInstance as {{{dataType}}}?).getAsJsonArray()
115115
elementAdapter.write(out, array)
116116
return

modules/openapi-generator/src/main/resources/kotlin-client/oneof_class.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ import java.io.IOException
110110
if (value.actualInstance is {{#isArray}}List<*>{{/isArray}}{{^isArray}}{{{dataType}}}{{/isArray}}) {
111111
{{#isArray}}
112112
val list = value.actualInstance as List<Any>
113-
if (list.get(0) is {{{items.dataType}}}) {
113+
if (!list.isEmpty() && list.get(0) is {{{items.dataType}}}) {
114114
val array = adapter{{#sanitizeGeneric}}{{{dataType}}}{{/sanitizeGeneric}}.toJsonTree(value.actualInstance as {{{dataType}}}?).getAsJsonArray()
115115
elementAdapter.write(out, array)
116116
return

samples/client/others/java/okhttp-gson-oneOf-array/src/main/java/org/openapitools/client/model/MyExampleGet200Response.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public void write(JsonWriter out, MyExampleGet200Response value) throws IOExcept
8989
// check if the actual instance is of the type `List<@Valid OneOf1>`
9090
if (value.getActualInstance() instanceof List<?>) {
9191
List<?> list = (List<?>) value.getActualInstance();
92-
if (list.get(0) instanceof OneOf1) {
92+
if (!list.isEmpty() && list.get(0) instanceof OneOf1) {
9393
JsonArray array = adapterListOneOf1.toJsonTree((List<@Valid OneOf1>)value.getActualInstance()).getAsJsonArray();
9494
elementAdapter.write(out, array);
9595
return;
@@ -191,7 +191,7 @@ public Map<String, Class<?>> getSchemas() {
191191
public void setActualInstance(Object instance) {
192192
if (instance instanceof List<?>) {
193193
List<?> list = (List<?>) instance;
194-
if (list.get(0) instanceof OneOf1) {
194+
if (!list.isEmpty() && list.get(0) instanceof OneOf1) {
195195
super.setActualInstance(instance);
196196
return;
197197
}

samples/client/petstore/java/okhttp-gson-3.1/src/main/java/org/openapitools/client/model/RefToRefParameterAnyofRefToAnyofParameter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public void setActualInstance(Object instance) {
187187

188188
if (instance instanceof List<?>) {
189189
List<?> list = (List<?>) instance;
190-
if (list.get(0) instanceof String) {
190+
if (!list.isEmpty() && list.get(0) instanceof String) {
191191
super.setActualInstance(instance);
192192
return;
193193
}

samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/ArrayAnyOf.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public void setActualInstance(Object instance) {
182182

183183
if (instance instanceof List<?>) {
184184
List<?> list = (List<?>) instance;
185-
if (list.get(0) instanceof String) {
185+
if (!list.isEmpty() && list.get(0) instanceof String) {
186186
super.setActualInstance(instance);
187187
return;
188188
}

samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/ArrayOneOf.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public void setActualInstance(Object instance) {
187187

188188
if (instance instanceof List<?>) {
189189
List<?> list = (List<?>) instance;
190-
if (list.get(0) instanceof String) {
190+
if (!list.isEmpty() && list.get(0) instanceof String) {
191191
super.setActualInstance(instance);
192192
return;
193193
}

samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/FakeAnyOfWIthSameErasureGet200Response.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public Map<String, Class<?>> getSchemas() {
157157
public void setActualInstance(Object instance) {
158158
if (instance instanceof List<?>) {
159159
List<?> list = (List<?>) instance;
160-
if (list.get(0) instanceof String) {
160+
if (!list.isEmpty() && list.get(0) instanceof String) {
161161
super.setActualInstance(instance);
162162
return;
163163
}

samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/FakeOneOfWIthSameErasureGet200Response.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public Map<String, Class<?>> getSchemas() {
163163
public void setActualInstance(Object instance) {
164164
if (instance instanceof List<?>) {
165165
List<?> list = (List<?>) instance;
166-
if (list.get(0) instanceof String) {
166+
if (!list.isEmpty() && list.get(0) instanceof String) {
167167
super.setActualInstance(instance);
168168
return;
169169
}

0 commit comments

Comments
 (0)