Skip to content

Commit 4c7a000

Browse files
authored
Merge pull request #1274 from swagger-api/issue-12190-NPE-handling
Handle NPE error message
2 parents c7df705 + 665c466 commit 4c7a000

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

src/main/java/io/swagger/codegen/v3/generators/SchemaHandler.java

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -189,25 +189,31 @@ protected void addInterfaces(List<Schema> schemas, CodegenModel codegenModel, Ma
189189
final String schemaName = ref.substring(ref.lastIndexOf("/") + 1);
190190

191191
final CodegenModel model = allModels.get(codegenConfig.toModelName(schemaName));
192-
this.addInterfaceModel(model, codegenModel);
193-
194-
boolean subTypeAdded = false;
195-
if (codegenModel.getSubTypes() != null) {
196-
subTypeAdded = codegenModel.getSubTypes().stream().anyMatch(existingSubType -> existingSubType.classname.equalsIgnoreCase(model.classname));
197-
}
198-
if (!subTypeAdded) {
199-
codegenModel.addSubType(model);
200-
}
201-
202-
203-
if (codegenModel.getDiscriminator() != null && StringUtils.isNotBlank(codegenModel.getDiscriminator().getPropertyName())) {
204-
Optional<CodegenProperty> optionalProperty = model.vars.stream()
205-
.filter(codegenProperty -> codegenProperty.baseName.equals(codegenModel.getDiscriminator().getPropertyName())).findFirst();
206-
207-
optionalProperty.ifPresent(codegenProperty -> {
208-
codegenModel.getVendorExtensions().put("x-discriminator-type", codegenProperty.datatypeWithEnum);
209-
codegenModel.getVendorExtensions().put("x-discriminator-type-getter", codegenConfig.toGetter(codegenModel.getDiscriminator().getPropertyName()));
210-
});
192+
if (model != null) {
193+
{
194+
this.addInterfaceModel(model, codegenModel);
195+
196+
boolean subTypeAdded = false;
197+
if (codegenModel.getSubTypes() != null) {
198+
subTypeAdded = codegenModel.getSubTypes().stream().anyMatch(existingSubType -> existingSubType.classname.equalsIgnoreCase(model.classname));
199+
}
200+
if (!subTypeAdded) {
201+
codegenModel.addSubType(model);
202+
}
203+
204+
205+
if (codegenModel.getDiscriminator() != null && StringUtils.isNotBlank(codegenModel.getDiscriminator().getPropertyName())) {
206+
Optional<CodegenProperty> optionalProperty = model.vars.stream()
207+
.filter(codegenProperty -> codegenProperty.baseName.equals(codegenModel.getDiscriminator().getPropertyName())).findFirst();
208+
209+
optionalProperty.ifPresent(codegenProperty -> {
210+
codegenModel.getVendorExtensions().put("x-discriminator-type", codegenProperty.datatypeWithEnum);
211+
codegenModel.getVendorExtensions().put("x-discriminator-type-getter", codegenConfig.toGetter(codegenModel.getDiscriminator().getPropertyName()));
212+
});
213+
}
214+
}
215+
}else {
216+
throw new NullPointerException("Could not find model for reference: " + ref);
211217
}
212218
}
213219
}

0 commit comments

Comments
 (0)