Incorrect JSON deserialization in `handleOneWayDeviceRPCRequestV2WithHttpInfo`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
Direzione di ricerca
Cerca handleOneWayDeviceRPCRequestV2WithHttpInfo nel client generato e ispeziona la deserializzazione della sua risposta. Confronta l’oggetto JSON previsto contenente rpcId con l’attuale deserializzazione come String, quindi verifica che il metodo restituisca rpcId per quella risposta senza MismatchedInputException.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Using ThingsBoard CE 4.3.1.3 with thingsboard-client-ce 4.3.1.3, an exception occurs in the generated client method:
handleOneWayDeviceRPCRequestV2WithHttpInfo
Exception
com.fasterxml.jackson.databind.exc.MismatchedInputException:
Cannot deserialize value of type `java.lang.String` from Object value
(token `JsonToken.START_OBJECT`)
Cause
The response body is a JSON object containing the rpcId, but the client attempts to deserialize the entire response directly into a String:
String responseValue = responseBody.isBlank()
? null
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<String>() {}
);
return new ApiResponse<String>(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseValue
);
This fails when the API response is an object such as:
{
"rpcId": "..."
}
Proposed fix
Extract the rpcId field from the JSON response instead:
String responseValue = responseBody.isBlank()
? null
: memberVarObjectMapper.readTree(responseBody).get("rpcId").asText();
return new ApiResponse<String>(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseValue
);
This correctly handles the object response and returns the rpcId as the expected String.
Expected result
handleOneWayDeviceRPCRequestV2WithHttpInfo should successfully deserialize the RPC response and return the rpcId without throwing MismatchedInputException.
- Lingua principale
- Java
- Stelle
- 2
- Fork
- 2
- Merge medio
- 1m
- PR unite (30g)
- 3
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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.
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
github/copilot-sdk#2793 ·
I maintainer di solito rispondono entro 1 giorno
-
Unify jpa4 into orm8Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100