ProtobufJsonPayloadConverter does not work correctly with shaded artifact
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Comienza con temporal-sdk/src/main/java/io/temporal/common/converter/ProtobufJsonPayloadConverter.java, en la comprobación de MessageOrBuilder descrita en la issue. Ejecuta la reproducción del shaded-artifact usando StringValue.of("hello") y verifica el resultado del payload del converter. Se considera terminado cuando se reconocen los valores de protobuf procedentes del código del cliente y la reproducción informa de un payload presente en el shaded-artifact.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Java
- Estrellas
- 434
- Forks
- 252
- Merge medio
- 3 d 15 min
- PR fusionados (30 d)
- 13
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de temporalio/sdk-java
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
temporalio/sdk-java#2676 · 8 comentarios · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
temporalio/sdk-java#1825 ·
Los mantenedores suelen responder en 1 día
-
test server
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
temporalio/sdk-java#3088 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Warn if the SDK tried to send a payload above a specific size - JavaPosiblemente ocupada @jmaeagle99 la tomó hace 20 días. Abierto
temporalio/sdk-java#3059 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Allow configurable prefix for MDC keysPosiblemente ocupada @maciejdudko la tomó hace 20 días. Abiertoenhancement
temporalio/sdk-java#3058 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de temporalio/sdk-java
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
feature triaged
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Graylog2/graylog2-server#27549 ·
Los mantenedores suelen responder en 1 día
-
component/zeebe kind/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
UniversalMediaServer/UniversalMediaServer#6356 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
googleapis/google-cloud-java#14533 ·
Los mantenedores suelen responder en 1 día