Query values are split at literal commas or lost when arrays are used
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- api, backend, networking
Direzione di ricerca
Trace query construction and parameter expansion from Feign's Client implementations, focusing on literal @RequestLine values, @QueryMap, and array-valued @Param expressions. Reproduce the reported cases with a recording Client, then add or update focused regression tests covering scalar, collection, primitive-array, empty/null, and reserved-character behavior while preserving custom Param.Expander behavior. The work is done when literal commas remain within one query value and arrays expand correctly across all listed paths.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Three query-value paths change or lose the caller's values on current master (e32547ac):
- A literal
@RequestLine("GET /x?ids=1,2")becomes?ids=1&ids=2, changing one value into two parameters. A percent-encoded comma would be fine; repeated parameters are the problem. Collection expressions should still expand as before. @QueryMapwithMap.of("ids", new int[]{1, 2})sends an array identity such asids=%5BI%40.... The same happens for primitive-array fields of query-map DTOs.String[]values in a query map already work.@RequestLine("GET /x?ids={ids}")with@Param("ids") int[]also sends the array identity;@Param String[]is affected too. This is a separate expression-expansion path from the query-map case.
I reproduced these with a recording Client and ran the regression tests using the dev profile (Java 8 main compilation and a JDK 27 test JVM). I'll prepare a focused fix with collection, scalar, empty/null-array and reserved-character controls. Existing custom Param.Expander behavior will be preserved.
The inherited-field collision candidate is outside this scope; it needs a separate decision about name precedence. No changes to #3613 or #3612 are intended.
- Lingua principale
- Java
- Stelle
- 9.8k
- Fork
- 2k
- Merge medio
- 1h 15m
- PR unite (30g)
- 39
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 OpenFeign/feign
-
DefaultAsyncClient never completes the returned future when Client throws ErrorForse già presa @hutiefang76 l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Response.charset ignores charset after another Content-Type parameterForse già presa @hutiefang76 l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
UriUtils ignores allowReservedCharacters=false when the input has no percent tripletForse già presa @hutiefang76 l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Java11 Http2Client loses response header value order and duplicate occurrencesForse già presa @hutiefang76 l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Java11 Http2Client rejects documented zero connect and read timeoutsForse già presa @hutiefang76 l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenFeign/feign
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
snowflakedb/snowflake-kafka-connector#1610 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
swagger-api/swagger-petstore#245 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
liquid-java/liquidjava#443 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
quarkiverse/quarkus-google-cloud-services#1188 ·
I maintainer di solito rispondono entro 1 giorno