[
https://issues.apache.org/jira/browse/PDFBOX-4723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010426#comment-17010426
]
Michael Klink commented on PDFBOX-4723:
---------------------------------------
By the way, there is an issue in {{hashCode}} in {{COSDictionary}}.
{code}
COSDictionary dictionary1 = new COSDictionary();
COSDictionary dictionary2 = new COSDictionary();
Assert.assertTrue(dictionary1.equals(dictionary2));
Assert.assertEquals(dictionary1.hashCode(), dictionary2.hashCode());
{code}
Here the second assertion fails. But two objects for which {{equals}} is
{{true}}, _must_ return the same {{hashCode}}.
The underlying problem is that {{SmallMap}} does not implement {{hashCode}}
based on contents. Thus, two distinct {{SmallMap}} instances always have
distinct {{hashCode}} values.
> Add equals() and hashCode() to PDAnnotation and COS objects
> -----------------------------------------------------------
>
> Key: PDFBOX-4723
> URL: https://issues.apache.org/jira/browse/PDFBOX-4723
> Project: PDFBox
> Issue Type: Sub-task
> Components: PDModel
> Affects Versions: 2.0.18
> Reporter: Maruan Sahyoun
> Assignee: Maruan Sahyoun
> Priority: Major
> Fix For: 2.0.19, 3.0.0 PDFBox
>
>
> In order to proper support removeAll/retainAll for COSArrayList we need to
> detect if entries are in fact duplicates of others. This currently fails as
> even though one might add the same instance of an annotation object multiple
> times to setAnnotations getting the annotations will have individual
> instances. See the discussion at PDFBOX-4669.
> In order to proper support removal we need to be able to detect equality
> where an object is equal if the underlying COSDictionary has the same entries.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]