[BUG] combining typeMappings with default can create broken Pojo artefact
Created by: randeepbydesign
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
Have you tested with the latest master to confirm the issue still exists? -
Have you searched for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
Consider the following Object definition in a swagger:
"OdbcConnection": {
"type": "object",
"properties": {
"ConnectionString": {
"type": "string",
"nullable": true
},
"ConnectionTimeout": {
"type": "integer",
"format": "int32",
"default": 15
}
},
"additionalProperties": false
}
We have a pattern where we try to work with longs so I configure my execution to translate all int to long:
<typeMappings>integer=Long,int=Long</typeMappings>
This works well, however in the rendered POJO I get a variable declaration for ConnectionTimeout
that attempts to assign an int to a long which does not compile:
public static final String JSON_PROPERTY_CONNECTION_TIMEOUT = "ConnectionTimeout";
private Long connectionTimeout = 15;
If I manually modify the swagger to use int64 instead of int32 the 'l' character is appended to the default value correctly.
I believe the toDefaultValue
method of the AbstractJavaCodegen
needs an addition to account for this situation