Optional headers with an empty value are converted to the empty string
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
What happened?
I have an endpoint method with an optional argument annotated by @HeaderParam:
@GET
@Path("/doStuff")
String doStuff(@HeaderParam("value") Optional<String> value);
I passed it the value Optional.empty() via a JaxRsClient:
MyService service = JaxRsClient.create(...
service.doStuff(Optional.empty())
However, the implementation of doStuff receives the value Optional.of(""), rather than Optional.empty().
There is a failing test case to show this at https://github.com/palantir/http-remoting/compare/develop...DoronShapiro:optional-header-tests.
This behavior happens because the implementation of Java8OptionalAwareContract serializes empty headers as an empty string, but when they are deserialized by the Java8OptionalParamConverterProvider, it is assumed that the value will be null if empty (and that the empty string represents a non-empty value).
What did you want to happen?
The server should receive a value of Optional.empty() for the header argument.
One solution is for the client to not include the header at all if its value is Optional.empty().
- Lingua principale
- Java
- Stelle
- 96
- Fork
- 95
- Merge medio
- 8m
- PR unite (30g)
- 55
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna 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 palantir/conjure-java-runtime
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
palantir/conjure-java-runtime#3585 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
palantir/conjure-java-runtime#3166 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
palantir/conjure-java-runtime#2490 · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
palantir/conjure-java-runtime#2248 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
palantir/conjure-java-runtime#2131 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di palantir/conjure-java-runtime
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ahmedmmordi/store-app#8 ·
-
jhipster heroku fails on heroku git:remote when reusing an existing app outside a git repositoryApertaarea: triage theme: undefined
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
jhipster/generator-jhipster#36018 ·
I maintainer di solito rispondono entro 1 giorno
-
component/zeebe kind/feature scope/broker
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno