ProtobufJsonPayloadConverter does not work correctly with shaded artifact
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia da temporal-sdk/src/main/java/io/temporal/common/converter/ProtobufJsonPayloadConverter.java, al controllo di MessageOrBuilder descritto nell’issue. Esegui la riproduzione dello shaded-artifact usando StringValue.of("hello") e verifica il risultato del payload del converter. Il lavoro è completato quando i valori protobuf provenienti dal codice client vengono riconosciuti e la riproduzione segnala la presenza di un payload nello shaded-artifact.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Expected Behavior
The ProtobufJsonPayloadConverter does not work correctly when using the shaded Temporal artifact, which is sometimes necessary to avoid gRPC version conflicts.
Here, MessageOrBuilder is rewritten in the byte-code to be io.temporal.shaded.com.google.protobuf.MessageOrBuilder, and so passing in a non-shaded value (as certainly client code will be using) fails, and the converter fails to convert the value.
The converter, whether it is shaded or not, should correctly recognize protobuf values coming from client code.
Actual Behavior
Protobuf values coming from client code are ignored, and serialization fails.
Steps to Reproduce the Problem
Using the shaded temporal artifact, run this code:
import com.google.protobuf.StringValue;
import io.temporal.common.converter.ProtobufJsonPayloadConverter;
class Test {
public static void main(String[] args) {
var converter = new ProtobufJsonPayloadConverter();
var msg = StringValue.of("hello");
var payloadOpt = converter.toData(msg);
System.out.println(payloadOpt.isPresent());
}
}
We can see that the payload is not present.
Specifications
- Version: 1.32.1
- Platform: N/A
- Lingua principale
- Java
- Stelle
- 434
- Fork
- 252
- Merge medio
- 2g 19h
- PR unite (30g)
- 14
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 temporalio/sdk-java
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
temporalio/sdk-java#2676 · 8 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
temporalio/sdk-java#1825 ·
I maintainer di solito rispondono entro 1 giorno
-
test server
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
temporalio/sdk-java#3088 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Warn if the SDK tried to send a payload above a specific size - JavaForse già presa @jmaeagle99 l’ha presa 21 giorni fa. Aperta
temporalio/sdk-java#3059 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Allow configurable prefix for MDC keysForse già presa @maciejdudko l’ha presa 22 giorni fa. Apertaenhancement
temporalio/sdk-java#3058 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di temporalio/sdk-java
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
apache/arrow-java#1311 ·
I maintainer di solito rispondono entro 2 giorni
-
bug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
IBM/networking-java-sdk#204 ·