hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Li Lu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (YARN-3836) add equals and hashCode to TimelineEntity and other classes in the data model
Date Thu, 09 Jul 2015 06:46:05 GMT

     [ 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)

Mime
View raw message