我正在尝试使用Java分类帐api并根据乒乓球示例设置一个应用程序。但是,方法“ containsModule”抛出异常:
InvalidProtocolBufferException.java
“协议消息具有太多级别的嵌套。可能是恶意的。使用CodedInputStream.setRecursionLimit()来增加深度限制。”
在这条线上:
//parse the archive payload
DamlLf.ArchivePayload payload = DamlLf.ArchivePayload.parseFrom(getPackageResponse.getArchivePayload());
你能帮忙吗?
谢谢。
最佳答案
通常,包装太大,以至于protobuf无法消化。根据错误提示,您可以明确设置递归限制,例如
CodedInputStream cos =
CodedInputStream.newInstance(getPackageResponse.getArchivePayload());
cos.setRecursionLimit(1000);
DamlLf.ArchivePayload payload = DamlLf.ArchivePayload.parser().parseFrom(cos);
我们将修复该示例,感谢您指出这一点。