Тег конечной группы сообщений протокола не соответствовал ожидаемому тегу
Я продолжаю получать следующую трассировку стека и не уверен, что это значит.
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)
- Что означает, что тег конечной группы протокола не соответствует ожидаемому тегу. имею в виду?
- Что такое тег конечной группы сообщений?
- Где-то это документировано?
Ответы
Ответ 1
Группы в protobuf записываются как числовая пара начала/конца - вроде как <foo>
нуждается в </foo>
, но в другом формате. По существу, он жалуется, что нашел вместо него </bar>
(просто: xml - это только метафора). Подробности находятся в спецификации кодирования, но длинный и короткий - это один из:
- данные по своей сути повреждены (либо повреждены ошибочным кодировщиком), либо
- данные становятся поврежденными во время чтения или
- данные в порядке, и вы дали дефектный декодер
Если бы мне пришлось угадать, данные были повреждены в пути - потому что настолько пугающе распространено