I'm migrating to dataflow2 and also proto compiler3.4.
I'm not getting the Coder.NonDeterministicException on proto objects when I have nested protos with this a leaf:
message NodeId {
optional int64 value = 1;
}
It is complaining that java objects aren't deterministically serializable. But it shouldn't be using java serialization, it should be proto serialization.
When I add this, it works: pipeline.getCoderRegistry().registerCoderForClass(NodeId.class, ProtoCoder.of(NodeId.class));
GeneratedMessage
isn't called GeneratedMessage with the new proto compiler. Now it is called GeneratedMessageV3
. And GeneratedMessageV3 does not extend GeneratedMessage.
So maybe the default coder registry needs to be upgraded to add proto coders for GeneratedMessageV3