Hi All,

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.

If you wish, I can provide a fix for this.

The original intent was, to save few bytes in the COSObjectKey.
Saving 4 bytes within an object seems a bit useless, but since there may
be many instances, it might be an improvement. Beside this, hashCode()
and equals() can be improved a little bit ;-).
Are you interested in this micro-improvement ?

I'm referencing the current git repository
https://github.com/apache/pdfbox/tree/trunk

Regards, Roland.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org

Reply via email to