Zhijie Shen commented on YARN-3431:

bq. There is always exception get thrown here. We should find some way to 
figure it out. e.g. adding a boolean value of check type?

It won't always throw exception. In this example, the exception will be thrown 
only when you use a TimelineEntity object whose type is not YARN_CLUSTER to 
construct a ClusterEntity, because this is logically invalid construction.

bq. If so, I don't understand what benefit we gain comparing with type casting 
directly. Am I missing something here?

At the web service side, we will only receive the generic TimelineEntity 
object, but not its subclass object. We can't do casting but use the generic 
object to construct the subclass object again.

> Sub resources of timeline entity needs to be passed to a separate endpoint.
> ---------------------------------------------------------------------------
>                 Key: YARN-3431
>                 URL: https://issues.apache.org/jira/browse/YARN-3431
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>            Reporter: Zhijie Shen
>            Assignee: Zhijie Shen
>         Attachments: YARN-3431.1.patch, YARN-3431.2.patch, YARN-3431.3.patch
> We have TimelineEntity and some other entities as subclass that inherit from 
> it. However, we only have a single endpoint, which consume TimelineEntity 
> rather than sub-classes and this endpoint will check the incoming request 
> body contains exactly TimelineEntity object. However, the json data which is 
> serialized from sub-class object seems not to be treated as an TimelineEntity 
> object, and won't be deserialized into the corresponding sub-class object 
> which cause deserialization failure as some discussions in YARN-3334 : 
> https://issues.apache.org/jira/browse/YARN-3334?focusedCommentId=14391059&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14391059.

This message was sent by Atlassian JIRA

Reply via email to