web-dev-qa-db-fra.com

La balise de groupe final du message de protocole ne correspond pas à la balise attendue

Je continue à obtenir la trace de pile suivante et je ne sais pas ce que cela signifie.

Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.
    at com.google.protobuf.InvalidProtocolBufferException.invalidEndTag(InvalidProtocolBufferException.Java:73)
    at com.google.protobuf.CodedInputStream.checkLastTagWas(CodedInputStream.Java:124)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.Java:189)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.Java:732)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.Java:238)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.Java:178)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.Java:724)
  • Qu'est-ce que "La balise de fin de groupe du message de protocole ne correspond pas à la balise attendue." signifier?
  • Qu'est-ce qu'une "balise de groupe de fin de message"?
  • Est-ce documenté quelque part?
17
Mike Rylander

Les groupes dans protobuf sont écrits comme une paire numérique de début/fin - un peu comme la façon dont <foo> a besoin d'un </foo>, mais dans un format différent. Essentiellement, il se plaint d'avoir trouvé un </bar> à la place (juste: le xml n'est qu'une métaphore). Les détails sont dans le spécification d'encodage , mais le long et le court est celui de:

  • les données sont intrinsèquement corrompues (soit par des dommages causés par un encodeur défectueux), soit
  • les données deviennent corrompues lors de la lecture, ou
  • les données sont bonnes et vous avez donné un décodeur défectueux

Si je devais deviner, les données ont été endommagées pendant le transport - parce que c'est tellement effrayant

16
Marc Gravell