Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.23, 3.0.3 JBIG2
-
None
-
Patch
Description
I think, I've just found a little bug within
COSParser::validateXrefOffsets, which occures when a xref generation is
corrected using COSObjectKey::fixGeneration.
The issue is, that COSObjectKey is used as a hash-key and this instance
is modified with fixGeneration.
Because of this modification, the hasCode of the COSObjectKey is changed
and the associated hashmap entry cannot longer be found in the xrefTable.
Hashmap key objects should better be immutabel (see
https://howtodoinjava.com/java/collections/hashmap/design-good-key-for-hashmap/)
According to the change history, this issue was introduced with a commit
for PDFBOX-4153, but PDFBOX-4490 seems also be related.
Attached patch-file contains bot, the bugfix and the proposed optimization within COSObjectKey.