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

Aperta Adatta ai principianti
#1,370 3 commenti 1 reazione 0 assegnatari Vedi su GitHub

@apupier ci sta già lavorando.

Dal 20/1/2026.

  • #1397 di @apupier — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
java
Ambito
tooling

Direzione di ricerca

Iniziare in src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java, intorno alle righe 2578-2580, dove vengono estratti i valori minimo e massimo. Riprodurre il problema con lo schema petstore fornito e il comando di generazione, quindi compilare api/pom.xml e ispezionare i file generati Order.java e StoreApi.java. Il lavoro è completato quando grandi limiti di validazione int64 producono Java compilabile mantenendo i valori richiesti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Mustache
Stelle
299
Fork
439
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di swagger-api/swagger-codegen-generators

Tutte le issue di swagger-api/swagger-codegen-generators

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.