Skip to content

Commit ca6c63f

Browse files
authored
fix java incompatible types error for number (#8018)
1 parent 8cfc9b0 commit ca6c63f

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -883,8 +883,10 @@ public String toDefaultValue(Schema schema) {
883883
if (schema.getDefault() != null) {
884884
if (SchemaTypeUtil.FLOAT_FORMAT.equals(schema.getFormat())) {
885885
return schema.getDefault().toString() + "f";
886-
} else {
886+
} else if (SchemaTypeUtil.DOUBLE_FORMAT.equals(schema.getFormat())) {
887887
return schema.getDefault().toString() + "d";
888+
} else {
889+
return "new BigDecimal(\"" + schema.getDefault().toString() + "\")";
888890
}
889891
}
890892
return null;

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,18 @@ public void toDefaultValueTest() {
448448
dateSchema.setDefault(date);
449449
defaultValue = codegen.toDefaultValue(dateSchema);
450450
Assert.assertEquals(defaultLocalDate, LocalDate.parse(defaultValue));
451+
452+
// Test default value for number without format
453+
NumberSchema numberSchema = new NumberSchema();
454+
Double doubleValue = 100.0;
455+
numberSchema.setDefault(doubleValue);
456+
defaultValue = codegen.toDefaultValue(numberSchema);
457+
Assert.assertEquals(defaultValue, "new BigDecimal(\"" + doubleValue.toString() + "\")");
458+
459+
// Test default value for number with format set to double
460+
numberSchema.setFormat("double");
461+
defaultValue = codegen.toDefaultValue(numberSchema);
462+
Assert.assertEquals(defaultValue, doubleValue + "d");
451463
}
452464

453465
@Test

0 commit comments

Comments
 (0)