From 31f0c653786fa9fa4e314ee56223db3cc9b11e03 Mon Sep 17 00:00:00 2001 From: Noah Fontes Date: Fri, 4 Mar 2022 22:31:54 -0800 Subject: [PATCH] Fix example generation when missing models (#11805) For some buggy configurations, a warning is emitted indicating that for a given request body the corresponding CodegenModel could not be found. When this happens, some generators produce NPEs when writing out example code. This change avoids the NPEs by providing a stub value instead. --- .../org/openapitools/codegen/languages/GoClientCodegen.java | 3 +++ .../codegen/languages/PowerShellClientCodegen.java | 4 +++- .../org/openapitools/codegen/languages/RubyClientCodegen.java | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java index 60872186a1ae..439dc4c8f9b6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java @@ -489,6 +489,9 @@ public class GoClientCodegen extends AbstractGoCodegen { if (modelMaps.containsKey(dataType)) { prefix = "map[string][]" + goImportAlias + "." + dataType; } + if (codegenParameter.items == null) { + return prefix + "{ ... }"; + } return prefix + "{\"key\": " + constructExampleCode(codegenParameter.items, modelMaps, processedModelMap) + "}"; } else if (codegenParameter.isPrimitiveType) { // primitive type if (codegenParameter.isString) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java index fee739c2c820..91435a81a56f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java @@ -1182,7 +1182,9 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo example.append(constructExampleCode(codegenParameter.items, modelMaps, processedModelMap, requiredOnly)); } } else if (codegenParameter.isMap) { - if (codegenParameter.items.isModel) { + if (codegenParameter.items == null) { + example.append("@{ key_example = ... }"); + } else if (codegenParameter.items.isModel) { String modelExample = constructExampleCode(codegenParameter.items, modelMaps, processedModelMap, requiredOnly); if (!StringUtils.isEmpty(modelExample)) { example.append(modelExample).append("\n"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java index 88a8aa6547d5..d36f4ebca9e4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java @@ -614,6 +614,9 @@ public class RubyClientCodegen extends AbstractRubyCodegen { if (codegenParameter.isArray) { // array return "[" + constructExampleCode(codegenParameter.items, modelMaps, processedModelMap) + "]"; } else if (codegenParameter.isMap) { + if (codegenParameter.items == null) { + return "{ ... }"; + } return "{ key: " + constructExampleCode(codegenParameter.items, modelMaps, processedModelMap) + "}"; } else if (codegenParameter.isPrimitiveType) { // primitive type if (codegenParameter.isEnum) {