[
https://issues.apache.org/jira/browse/PDFBOX-5151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17356392#comment-17356392
]
Andreas Lehmkühler commented on PDFBOX-5151:
--------------------------------------------
Digging deeper into this reveals an issue with the sorting order of
COSObjectKey, but it isn't the root cause for the described issue, see my last
commit
BTW, the issue doesn't go away if I simply revert the changes of r1890133. The
order of the objects within some of the maps seems relevant and as those maps
aren't ordered at all it is works/fails by accident. I'm working on that
> Issue with COSObjectKey::fixGeneration
> --------------------------------------
>
> Key: PDFBOX-5151
> URL: https://issues.apache.org/jira/browse/PDFBOX-5151
> Project: PDFBox
> Issue Type: Bug
> Components: Parsing
> Affects Versions: 2.0.23, 3.0.3 JBIG2
> Reporter: Roland Meub
> Assignee: Andreas Lehmkühler
> Priority: Major
> Fix For: 2.0.24, 3.0.0 PDFBox
>
> Attachments: pdfbox-fixGeneration-bugfix.patch
>
>
> 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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]