[ 
https://issues.apache.org/jira/browse/PDFBOX-4723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17190226#comment-17190226
 ] 

Michael Klink commented on PDFBOX-4723:
---------------------------------------

[~capSVD],

as you argue along the lines of the use of these classes for keys of hash maps, 
please also remember:

{panel:title=JavaDocs of the Interface Map}
Note: great care must be exercised if mutable objects are used as map keys.  
The behavior of a map is not specified if the value of an object is changed in 
a manner that affects {{equals}} comparisons while the object is a key in the 
map.
{panel}

Thus, already by using mutable objects as map keys you do something you are 
warned about. In particular changes of {{equals}} and {{hashCode}} results of 
mutable classes are not considered a problem, merely the use of instances of 
such classes as map keys is considered a problem.

> 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: 3.0.0 PDFBox
>
>         Attachments: bird_burst.heic.pdf, image-2020-09-02-13-52-21-370.png, 
> image-2020-09-02-13-53-02-622.png, image-2020-09-02-13-54-31-630.png, 
> screenshot-1.png
>
>
> 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]

Reply via email to