Skip to content

Commit 293d29a

Browse files
bcourtinewing328
authored andcommitted
Fixes bug OpenAPITools#1339. Array and Map inner schema can be missing. In this case, it must default to String. (OpenAPITools#1363)
1 parent 078b04d commit 293d29a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.common.base.Strings;
2121
import io.swagger.v3.oas.models.media.ArraySchema;
2222
import io.swagger.v3.oas.models.media.Schema;
23+
import io.swagger.v3.oas.models.media.StringSchema;
2324
import org.openapitools.codegen.*;
2425
import org.openapitools.codegen.utils.ModelUtils;
2526
import org.openapitools.codegen.utils.StringUtils;
@@ -310,9 +311,17 @@ public String getTypeDeclaration(Schema p) {
310311
if (ModelUtils.isArraySchema(p)) {
311312
ArraySchema ap = (ArraySchema) p;
312313
Schema inner = ap.getItems();
314+
if (inner == null) {
315+
LOGGER.warn(ap.getName() + "(array property) does not have a proper inner type defined.Default to string");
316+
inner = new StringSchema().description("TODO default missing array inner type to string");
317+
}
313318
return "Vec<" + getTypeDeclaration(inner) + ">";
314319
} else if (ModelUtils.isMapSchema(p)) {
315320
Schema inner = ModelUtils.getAdditionalProperties(p);
321+
if (inner == null) {
322+
LOGGER.warn(p.getName() + "(map property) does not have a proper inner type defined. Default to string");
323+
inner = new StringSchema().description("TODO default missing map inner type to string");
324+
}
316325
return "::std::collections::HashMap<String, " + getTypeDeclaration(inner) + ">";
317326
}
318327

0 commit comments

Comments
 (0)