PDFBox 版本 3.0.0 拆分器类 NullPointerException 在 org.apache.pdfbox.cos.COSArray.getIndirectObjectKeys(COSArray.java:768

PDFBox Version 3.0.0 Splitter class NullPointerException at org.apache.pdfbox.cos.COSArray.getIndirectObjectKeys(COSArray.java:768

提问人:contributor 提问时间:10/28/2023 更新时间:10/29/2023 访问量:49

问:

PDFBox 版本 3.0.0 请帮忙。尝试拆分 pdf 文件并引发异常: java.lang.NullPointerException 在 org.apache.pdfbox.cos.COSArray.getIndirectObjectKeys(COSArray.java:768)

它在这一行失败的原因是:coseBase 为 null,这就是 getKey() 失败的原因。 应该有一个 null 测试来防止这种情况。 objects 数组包含: [null, COSName{XYZ}, COSFloat{80.787}, COSFloat{686.677}, COSNull{}] 766:for (COSBase cosBase : objects) 767: { 768: COSObjectKey cosBaseKey = cosBase.getKey();

此外,第 748 行的 getIndirectObjectKeys 方法仅检查 null,并且我正在拆分 indirectObjects 数组的 pdf 文件不是 null 而是空;即 [] 代码应该测试空虚,而不仅仅是无效。

746:public void getIndirectObjectKeys(List<COSObjectKey> indirectObjects) 747: { 758: if (indirectObjects == null)

这里的问题是 PDFBox Splitter 类代码。

有什么办法可以规避这个问题吗? 非常感谢您的帮助

我正在尝试拆分 pdf 文件

PDFBOX 拆分器

评论

0赞 Tilman Hausherr 10/28/2023
请在 JIRA 中进行错误报告。您可能需要注册 ( issues.apache.org/jira/browse/PDFBOX ),如果是这样,请包含有意义的文本,以便我们知道您不是垃圾邮件发送者。还要包括您的文件。
0赞 Tilman Hausherr 10/29/2023
您不必再这样做了:issues.apache.org/jira/browse/PDFBOX-5707
0赞 Tilman Hausherr 10/30/2023
安德烈亚斯刚刚修复了它,请试试这个快照 repository.apache.org/content/groups/snapshots/org/apache/...

答:

2赞 Lehmi 10/29/2023 #1

我可以确认第 768 行中第一个报告的问题。恕我直言,第二个不会发生,因为只有没有空值被添加到相关列表中。

我已经创建了票证 https://issues.apache.org/jira/browse/PDFBOX-5707。如果可用,请为第二期添加样本 pdf。我很高兴从上面纠正我的陈述;-)

评论

0赞 contributor 11/1/2023
感谢 @Tilman Hausherr 应用了我建议的更改。成功了。我还从 apache.org/dyn/closer.lua/pdfbox/3.0.0/pdfbox-3.0.0-src.zip 获取了 PDFBox 代码,使我的更改 COSdictionary.java file public void getIndirectObjectKeys(List<COSObjectKey> indirectObjects) { if (indirectObjects == null || indirectObjects.isEmpty()) { return; } 它也起作用了。非常感谢您的帮助。