openapi-generator icon indicating copy to clipboard operation
openapi-generator copied to clipboard

[BUG] [KOTLIN] Type with additionalProperties generates invalid code

Open felixkrull-neuland opened this issue 4 months ago • 2 comments

Bug Report Checklist

  • [x] Have you provided a full/minimal spec to reproduce the issue?
  • [x] Have you validated the input using an OpenAPI validator?
  • [x] Have you tested with the latest master to confirm the issue still exists?
  • [x] Have you searched for related issues/PRs?
  • [x] What's the actual output vs expected output?
  • [ ] [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

In 7.16.0, using the Kotlin client generator with the multiplatform library, openapi-generator generates invalid code for types that have additionalProperties: {}. It adds an additional set of parentheses to the HashMap constructor invocation which makes the code not compile:

data class Abc (
...
) : kotlin.collections.HashMap<String, kotlin.Any>()() {
...
openapi-generator version

7.16.0, this worked in 7.15.0. I tried with latest master, still happens.

OpenAPI declaration file content or url

gist. I removed url etc, but otherwise this is 1:1 the real file we have.

Generation Details

java -jar openapi-generator-cli.jar generate -g kotlin -i openapi-issue.json --library multiplatform -o generated --additional-properties dateLibrary=string

Steps to reproduce
  1. generate code (Kotlin, client, multiplatform)
  2. open generated/src/commonMain/kotlin/org/openapitools/client/models/ProblemDetails.kt
  3. notice the invalid kotlin.collections.HashMap<String, kotlin.Any>()()

felixkrull-neuland avatar Sep 30 '25 09:09 felixkrull-neuland

I have similar issue with kotlin generator run as Gradle task with OpenAPI generator version 7.15.0 and 7.16.0

When specification file includes ``"additionalProperties": {}or"additionalProperties": true` in a component schema, the generated code does not compile:

data class ComponentA(

    // properties

) : kotlin.collections.HashMap<String, kotlin.Any>()() {


}

jan-beszterda avatar Oct 07 '25 06:10 jan-beszterda

I am seeing the same issue with:

  • OpenAPI Generator Gradle Plugin version: 7.16.0
  • Generator name: kotlin
  • Kotlin version: 2.2.20

MasaHirano avatar Oct 23 '25 09:10 MasaHirano