[Bug]: Bean validation doesn't work for numbers larger than Integer.MAX_VALUE
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
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
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:
- Linguagem predominante
- Mustache
- Estrelas
- 299
- Forks
- 439
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de swagger-api/swagger-codegen-generators
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
[Bug]: Python/pythonFlaskConnexion generators validate map keys instead of values for additionalProperties.enumTalvez já em andamento @pvillard31 assumiu há 208 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
-
Python generated code: Delete API Requests can be blocked in API Gateways when sends empty bodyAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 72/100
Todas as issues de swagger-api/swagger-codegen-generators
Issues semelhantes
-
needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
coder/claudecode.nvim#588 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 91/100
unicef/adt-studio#1112 ·
Mantenedores costumam responder em até 2 dias
-
feature request good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
TabularisDB/tabularis#1511 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
open-policy-agent/regal#2171 ·
Mantenedores costumam responder em até 1 dia
-
Switch to ruffAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Mantenedores costumam responder em até 1 dia