我有一个thrift结构,它有一个我用来携带二进制数据的字段。我使用thrift compact协议序列化数据,然后在设置此字段之前使用snappy对其进行压缩。整个thrift结构流入hadoop管道。我滚烫的工作需要这个字段解压,那时候它遇到了失败的\u到\u解压(5)错误。
以下是callstack的一部分:
org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:98)
org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
org.xerial.snappy.Snappy.rawUncompress(Snappy.java:474)
org.xerial.snappy.Snappy.uncompress(Snappy.java:513)
org.xerial.snappy.SnappyInputStream.readFully(SnappyInputStream.java:147)
org.xerial.snappy.SnappyInputStream.readHeader(SnappyInputStream.java:99)
org.xerial.snappy.SnappyInputStream.<init>(SnappyInputStream.java:59)
引发异常的代码如下:
SnappyInputStream inputStream = new SnappyInputStream(byteArrayInputStream);
父thrift已使用二进制thrift协议序列化/反序列化。我能很好地阅读所有其他领域。我试过调试这个问题,但是因为抛出异常的代码是本地c代码,所以我似乎无法从intellij进入这些代码。
看看简洁的代码,他们似乎有一些不使用c的java版本。
如果是这样的话,我很想得到一些关于如何使用它的建议,这样我就可以重新编程并理解如何从调试器中解决这个问题。或者如果有任何其他选项来调试这个,请让我知道!
暂无答案!
目前还没有任何答案,快来回答吧!