[Bug]: Bean validation doesn't work for numbers larger than Integer.MAX_VALUE

Aberta Para iniciantes
#1,370 3 comentários 1 reação 0 responsáveis Ver no GitHub

@apupier já está trabalhando nisso.

Desde 20/1/2026.

  • #1397 de @apupier — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
68/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
java
Domínio
tooling

Direção de pesquisa

Comece em src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java, por volta das linhas 2578-2580, onde os valores mínimo e máximo são extraídos. Reproduza o problema com o schema petstore fornecido e o comando de geração, depois faça o build de api/pom.xml e inspecione os arquivos gerados Order.java e StoreApi.java. Considera-se concluído quando limites de validação int64 grandes produzem Java compilável, mantendo os valores solicitados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Bug

With the following modification on petstore schema where I added minimum and maximum values, the generated POJO do not compile and give the following error:

 "components": {
		"schemas": {
			"Order": {
				"type": "object",
				"properties": {
					"id": {
						"type": "integer",
						"format": "int64",
                        "minimum": 0,
                        "maximum": 787878787878,
						"example": 787878787878
					}

Command used for code generation:

java -jar swagger-codegen-cli-3.0.72.jar generate -DperformBeanValidation=true -DuseBeanValidation=true  -i ./petstore.json -l java -o api && mvn -f api/pom.xml clean package -Dmaven.compiler.source=21 -Dmaven.compiler.target=21

Build error:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /test/api/src/main/java/io/swagger/client/api/StoreApi.java:[667,68] integer number too large
[ERROR] /test/api/src/main/java/io/swagger/client/model/Order.java:[109,15] integer number too large
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

A snippet from generated Order.java

    102    /**
    103    * Get id
    104    * minimum: 0
    105    * maximum: 787878787878
    106    * @return id
    107   **/
    108   @NotNull
    109  @Min(0) @Max(787878787878)  @Schema(example = "9999999999", description = "")
    110   public Long getId() {
    111     return id;
    112   }

As per my analysis the long literal "L" should be appended when extracting min/max from the parameterSchema:

https://github.com/swagger-api/swagger-codegen-generators/blob/master/src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java#L2578-L2580

Linguagem predominante
Mustache
Estrelas
299
Forks
439
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de swagger-api/swagger-codegen-generators

Todas as issues de swagger-api/swagger-codegen-generators

Issues semelhantes

Mais issues de DevTools

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.