[ 
https://issues.apache.org/jira/browse/YARN-3836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Li Lu updated YARN-3836:
------------------------
    Attachment: YARN-3836-YARN-2928.002.patch

Hi [~sjlee0], thanks for the prompt feedback! I updated the patch according to 
your comments. Specifically:

bq. What I would prefer is to override equals() and hashCode() for Identifier 
instead, and have simple equals() and hashCode() implementations for 
TimelineEntity that mostly delegate to Identifier. The rationale is that 
Identifier can be useful as keys to collections in its own right, and thus 
should override those methods.
That's a nice suggestion! Fixed. 

bq. One related question for your use case of putting entities into a map: I 
notice that you're using the TimelineEntity instances directly as keys to maps. 
Wouldn't it be better to use their Identifier instances as keys instead? 
Identifier instances are easier and cheaper to construct and compare.
I think I used an inappropriate example here. I meant to say HashSet but not 
HashMap.

bq. We should make isValid() a proper javadoc hyperlink
Fixed. 

bq. Since we're checking the entity type and the id, wouldn't it be sufficient 
to check whether the object is an instance of TimelineEntity?
I agree. Fixed all related ones. 


> add equals and hashCode to TimelineEntity and other classes in the data model
> -----------------------------------------------------------------------------
>
>                 Key: YARN-3836
>                 URL: https://issues.apache.org/jira/browse/YARN-3836
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>    Affects Versions: YARN-2928
>            Reporter: Sangjin Lee
>            Assignee: Li Lu
>         Attachments: YARN-3836-YARN-2928.001.patch, 
> YARN-3836-YARN-2928.002.patch
>
>
> Classes in the data model API (e.g. {{TimelineEntity}}, 
> {{TimelineEntity.Identifer}}, etc.) do not override {{equals()}} or 
> {{hashCode()}}. This can cause problems when these objects are used in a 
> collection such as a {{HashSet}}. We should implement these methods wherever 
> appropriate.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to