google/protobuf.dart

Incompatibility with Java-generated Serialized Protocol Buffer in Dart Protocol Buffers Library

njovy opened this issue · 0 comments

I have encountered a bug in the Dart Protocol Buffers library when attempting to decode a serialized Protocol Buffer file that was generated using Java. The specific issue arises during the decoding process in Dart, leading to an exception being thrown.

  • Library Version:
  • Dart: Protobuf 3.1.0
  • Java: protobuf gradle plugin 0.8.18, 3.23.4
  • Error Message: InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.
#0      CodedBufferReader.checkLastTagWas (package:protobuf/src/protobuf/coded_buffer_reader.dart:42:7)
#1      CodedBufferReader.readMessage (package:protobuf/src/protobuf/coded_buffer_reader.dart:114:5)
#2      _mergeFromCodedBufferReader (package:protobuf/src/protobuf/coded_buffer.dart:126:17)
#3      GeneratedMessage.mergeFromCodedBufferReader (package:protobuf/src/protobuf/generated_message.dart:177:5)
#4      CodedBufferReader.readMessage (package:protobuf/src/protobuf/coded_buffer_reader.dart:113:13)
#5      _mergeFromCodedBufferReader (package:protobuf/src/protobuf/coded_buffer.dart:186:15)
#6      GeneratedMessage.mergeFromBuffer (package:protobuf/src/protobuf/generated_message.dart:192:5)
#7      new BvSB.fromBuffer (package:proto_bug/generated/protos/lib/protos/good.pb.dart:40:122)
  • Steps to Reproduce:
    • Serialize a protobuf message in Java. Then deserialize this in dart.