Skip to content

Any? is generated with type of null in 3.0.3 #3273

Description

@petergphillips

Describe the bug
After the upgrade from springdoc 3.0.2 to 3.0.3 we've noticed that

  val anyName: Any? = null,

gets generated as

          "anyName" : {
            "type" : "null"
          }

This causes problems with the openapi generator as it then thinks that the type can only be null and tries to generate a Null type etc.

Under springdoc 3.0.2 the same code generated:

          "anyName" : { }

To Reproduce

  • What version of spring-boot you are using? 4.0.5
  • What version of kotlin are you using? 2.3.20
  • What modules and versions of springdoc-openapi are you using? 3.0.3
  • What is the actual and the expected result using OpenAPI Description (yml or json)? See above for actual and also the generated code in 3.0.2. I would expect the type not to just be "null".
  • Provide with a sample code (HelloController) or Test that reproduces the problem
@RestController
class IssuesController {
  @GetMapping("/")
  fun greet(greeting: Greeting): String = greeting.anyName?.toString() ?: "Hello World"
}

data class Greeting(
  val anyName: Any? = null,
)

Expected behavior
Note that if the field is defined as

  val stringName: String? = null,

then the generated code is

            "type" : [ "string", "null" ]

I think it is therefore because Any doesn't have a type and therefore null just gets inserted instead. I guess one option is to remove the null if it is the only type found?

Additional context
Looks to be a side effect of #3256.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions