[
https://issues.apache.org/jira/browse/PDFBOX-5151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17356390#comment-17356390
]
Andreas Lehmkühler commented on PDFBOX-5151:
--------------------------------------------
Adde manually, as I mixed up the JIRA tickets
Commit 1890422 from [email protected] in branch 'pdfbox/trunk'
[ https://svn.apache.org/r1890422 ]
PDFBOX-5151: flip number and generation number within the internal
representation to ensure the expected sorting order for object keys (compare
object numbers first and take the generation numbers into account if they are
equal)
> 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]