dapr / dapr/java-sdk

State management with Java SDK - clarify error message when etag is incorrect

Aperta
#957 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
needs runtime change
Lingua principale
Java
Stelle
300
Fork
230
Merge medio
5g 1h
PR unite (30g)
5

Descrizione

## Describe the proposal
Currently, when you update the value of a key in the state and do not pass the etag correctly, you receive this generic error message:

```
**io.dapr.exceptions.DaprException: ERR_STATE_SAVE: failed saving state in state store general-purpose-service-store: no item was updated**
at io.dapr.client.DaprHttp$ResponseFutureCallback.onResponse(DaprHttp.java:385) ~[dapr-sdk-1.10.0.jar:na]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ⇢ Handler com.dotmatics.databricksmanagement.api.controller.DbxUserTokenController#createUserToken(RequestUserTokenDto) [DispatcherHandler]
Original Stack Trace:
at io.dapr.client.DaprHttp$ResponseFutureCallback.onResponse(DaprHttp.java:385) ~[dapr-sdk-1.10.0.jar:na]
at org.glowroot.agent.plugin.httpclient.OkHttpCallbackWrapper_.onResponse(OkHttpCallbackWrapper.java:59) ~[na:na]
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) ~[okhttp-4.10.0.jar:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
```

Can you consider returning a clearer and more specific message or error code to facilitate troubleshooting?

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia in DaprHttp.java, intorno alla posizione di ResponseFutureCallback.onResponse mostrata nello stack trace, quindi segui la gestione della richiesta e della risposta di salvataggio dello stato del Java SDK per un etag errato. Riproduci l’aggiornamento non riuscito e definisci il completamento come la restituzione di un messaggio o di un codice di errore più chiaro e specifico che distingua l’errore dell’etag da un errore generico dell’archivio di stato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
api, backend
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.