OpenAPITools / OpenAPITools/openapi-generator
[BUG][KOTLIN] Bug generating array of enum with default value
Open
Nobody has claimed this yet.
Issue: Bug
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
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
By generating the kotlin client from an openapi spec which contains a parameter that is an enum array with a default value, the generated code cannot be built, with an error like
Unresolved reference: arrayListOf
Unresolved reference: active
generated code :
fun xxx(@Query("statuses") statuses: @JvmSuppressWildcards kotlin.collections.List<kotlin.String>? = Statuses.arrayListOf(active)): Call<yyy>
We should be able to build without error
openapi-generator version
7.7.0
OpenAPI declaration file content or url
{
"name": "statuses",
"required": false,
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"default": [
"active"
]
}
}
Generation Details
openapi-generator-cli generate -i openapi.json -g kotlin -o . --additional-properties=library=jvm-retrofit2,serializationLibrary=gson
Steps to reproduce
- generate kotlin client
- build client with
./gradlew assemble
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the supplied OpenAPI declaration using the Kotlin generation command and inspect the generated parameter declaration. Run ./gradlew assemble on the generated client; done means the enum-array default is generated in buildable Kotlin without unresolved references.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin, openapi
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100