[Bug]: Bean validation doesn't work for numbers larger than Integer.MAX_VALUE
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
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
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:
- Lingua principale
- Mustache
- Stelle
- 299
- Fork
- 439
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di swagger-api/swagger-codegen-generators
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
[Bug]: Python/pythonFlaskConnexion generators validate map keys instead of values for additionalProperties.enumForse già presa @pvillard31 l’ha presa 208 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Python generated code: Delete API Requests can be blocked in API Gateways when sends empty bodyAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
Tutte le issue di swagger-api/swagger-codegen-generators
Issue simili
-
Switch to ruffAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
tashfeenahmed/freellmapi#1920 ·
I maintainer di solito rispondono entro 1 giorno
-
reliability should-have
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
melihbirim/csvql#309 ·
I maintainer di solito rispondono entro 1 giorno
-
help wanted manifest-fix-needed verified
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ScoopInstaller/Extras#19345 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno