Skip to content

Commit a0350c6

Browse files
authored
Fix cast exception when handling example/default of UUID/Long type (#16450)
* fix cast exception when handling uuid example/default * more cast exception fix * better fix in example generator * better code format * better code format
1 parent bceae56 commit a0350c6

File tree

9 files changed

+29
-23
lines changed

9 files changed

+29
-23
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,8 @@ private Object resolvePropertyToExample(String propertyName, String mediaType, S
287287
return "https://openapi-generator.tech";
288288
} else if (ModelUtils.isStringSchema(property)) {
289289
LOGGER.debug("String property");
290-
String defaultValue = (String) property.getDefault();
291-
if (defaultValue != null && !defaultValue.isEmpty()) {
292-
LOGGER.debug("Default value found: '{}'", defaultValue);
293-
return defaultValue;
290+
if (property.getDefault() != null) {
291+
return String.valueOf(property.getDefault());
294292
}
295293
List<String> enumValues = property.getEnum();
296294
if (enumValues != null && !enumValues.isEmpty()) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ public String toDefaultValue(Schema p) {
262262
return "null";
263263
} else if (ModelUtils.isStringSchema(p)) {
264264
if (p.getDefault() != null) {
265-
String _default = (String) p.getDefault();
265+
String _default = String.valueOf(p.getDefault());
266266
if (p.getEnum() == null) {
267267
return "\"" + escapeText(_default) + "\"";
268268
} else {

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,7 @@ public String toDefaultValue(Schema p) {
795795
}
796796
} else if (ModelUtils.isStringSchema(p)) {
797797
if (p.getDefault() != null) {
798-
String _default = (String) p.getDefault();
798+
String _default = String.valueOf(p.getDefault());
799799
if (p.getEnum() == null) {
800800
return "\"" + _default + "\"";
801801
} else {
@@ -1133,5 +1133,7 @@ public void postProcessFile(File file, String fileType) {
11331133
}
11341134

11351135
@Override
1136-
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.F_SHARP; }
1136+
public GeneratorLanguage generatorLanguage() {
1137+
return GeneratorLanguage.F_SHARP;
1138+
}
11371139
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ private String toExampleValueRecursive(Schema schema, List<Schema> includedSchem
353353

354354
// correct "&#39;"s into "'"s after toString()
355355
if (ModelUtils.isStringSchema(schema) && schema.getDefault() != null && !ModelUtils.isDateSchema(schema) && !ModelUtils.isDateTimeSchema(schema)) {
356-
example = (String) schema.getDefault();
356+
example = String.valueOf(schema.getDefault());
357357
}
358358

359359
if (StringUtils.isNotBlank(example) && !"null".equals(example)) {

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,10 @@ public String toDefaultValue(Schema p) {
233233
// true => "true", false => "false", null => "null"
234234
out = String.valueOf(p.getDefault());
235235
} else if (ModelUtils.isLongSchema(p)) {
236-
Long def = (Long) p.getDefault();
237-
out = def == null ? out : def + "L";
236+
if (p.getDefault() != null) {
237+
Long def = Long.parseLong(String.valueOf(p.getDefault()));
238+
out = def == null ? out : def + "L";
239+
}
238240
} else if (ModelUtils.isMapSchema(p)) {
239241
Schema inner = ModelUtils.getAdditionalProperties(p);
240242
String s = inner == null ? "Object" : getTypeDeclaration(inner);
@@ -313,7 +315,7 @@ private void generateAntSupportingFiles() {
313315
supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore"));
314316

315317
supportingFiles.add(new SupportingFile("README_ant.mustache", "README.md")
316-
.doNotOverwrite());
318+
.doNotOverwrite());
317319

318320
}
319321

@@ -323,10 +325,12 @@ private void generateSfdxSupportingFiles() {
323325
supportingFiles.add(new SupportingFile("sfdx-project.json.mustache", "sfdx-project.json"));
324326

325327
supportingFiles.add(new SupportingFile("README_sfdx.mustache", "README.md")
326-
.doNotOverwrite());
328+
.doNotOverwrite());
327329

328330
}
329331

330332
@Override
331-
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.APEX; }
333+
public GeneratorLanguage generatorLanguage() {
334+
return GeneratorLanguage.APEX;
335+
}
332336
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -939,5 +939,7 @@ public void postProcess() {
939939
}
940940

941941
@Override
942-
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.C; }
942+
public GeneratorLanguage generatorLanguage() {
943+
return GeneratorLanguage.C;
944+
}
943945
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,9 @@ public void addEnumValuesPrefix(Map<String, Object> allowableValues, String pref
235235
}
236236

237237
if (allowableValues.containsKey("values")) {
238-
List<String> values = (List<String>) allowableValues.get("values");
239-
for (String value : values) {
240-
value = prefix + "_" + value;
238+
List<Object> values = (List<Object>) allowableValues.get("values");
239+
for (Object value : values) {
240+
value = prefix + "_" + String.valueOf(value);
241241
}
242242
}
243243
}
@@ -435,7 +435,7 @@ public String toDefaultValue(Schema p) {
435435
}
436436
} else if (ModelUtils.isStringSchema(p)) {
437437
if (p.getDefault() != null) {
438-
if (Pattern.compile("\r\n|\r|\n").matcher((String) p.getDefault()).find())
438+
if (Pattern.compile("\r\n|\r|\n").matcher(String.valueOf(p.getDefault())).find())
439439
return "'''" + p.getDefault() + "'''";
440440
else
441441
return "'" + p.getDefault() + "'";

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1236,7 +1236,7 @@ else if (ModelUtils.isBooleanSchema(p)) {
12361236
}
12371237
} else if (ModelUtils.isStringSchema(p)) {
12381238
if (p.getDefault() != null) {
1239-
defaultValue = "\"" + (String) p.getDefault() + "\".to_string()";
1239+
defaultValue = "\"" + String.valueOf(p.getDefault()) + "\".to_string()";
12401240
}
12411241
}
12421242
if ((defaultValue != null) && (ModelUtils.isNullable(p)))

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,9 @@ public String toDefaultValue(Schema p) {
396396
if (p.getEnum() != null && !p.getEnum().isEmpty()) {
397397
if (p.getDefault() != null) {
398398
if (ModelUtils.isStringSchema(p)) {
399-
return "." + toEnumVarName(escapeText((String) p.getDefault()), p.getType());
399+
return "." + toEnumVarName(escapeText(String.valueOf(p.getDefault())), p.getType());
400400
} else {
401-
return "." + toEnumVarName(escapeText(p.getDefault().toString()), p.getType());
401+
return "." + toEnumVarName(escapeText(String.valueOf(p.getDefault())), p.getType());
402402
}
403403
}
404404
}
@@ -412,9 +412,9 @@ public String toDefaultValue(Schema p) {
412412
long epochMicro = TimeUnit.SECONDS.toMicros(instant.getEpochSecond()) + (instant.get(ChronoField.MICRO_OF_SECOND));
413413
return "Date(timeIntervalSince1970: " + String.valueOf(epochMicro) + ".0 / 1_000_000)";
414414
} else if (ModelUtils.isUUIDSchema(p)) {
415-
return "\"" + escapeText(p.getDefault().toString()) + "\"";
415+
return "\"" + escapeText(String.valueOf(p.getDefault())) + "\"";
416416
} else if (ModelUtils.isStringSchema(p)) {
417-
return "\"" + escapeText((String) p.getDefault()) + "\"";
417+
return "\"" + escapeText(String.valueOf(p.getDefault())) + "\"";
418418
}
419419
// TODO: Handle more cases from `ModelUtils`, such as Date
420420
}

0 commit comments

Comments
 (0)