ProtobufJsonPayloadConverter does not work correctly with shaded artifact
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Commencez par temporal-sdk/src/main/java/io/temporal/common/converter/ProtobufJsonPayloadConverter.java, au niveau de la vérification de MessageOrBuilder décrite dans l’issue. Exécutez la reproduction du shaded-artifact avec StringValue.of("hello") et vérifiez le résultat du payload du converter. C’est terminé lorsque les valeurs protobuf provenant du code client sont reconnues et que la reproduction signale la présence d’un payload dans le shaded-artifact.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Java
- Étoiles
- 434
- Forks
- 252
- Merge moyen
- 2 j 19 h
- PR mergées (30 j)
- 14
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de temporalio/sdk-java
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
temporalio/sdk-java#2676 · 8 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
temporalio/sdk-java#1825 ·
Les mainteneurs répondent en général sous 1 jour
-
test server
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
temporalio/sdk-java#3088 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Warn if the SDK tried to send a payload above a specific size - JavaPeut-être pris @jmaeagle99 l’a pris il y a 21 jours. Ouverte
temporalio/sdk-java#3059 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Allow configurable prefix for MDC keysPeut-être pris @maciejdudko l’a pris il y a 22 jours. Ouverteenhancement
temporalio/sdk-java#3058 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de temporalio/sdk-java
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
apache/arrow-java#1311 ·
Les mainteneurs répondent en général sous 2 jours
-
bug triage
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
security
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
IBM/networking-java-sdk#204 ·
-
bug Technical Debt
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
avniproject/avni-server#1080 ·