[
https://issues.apache.org/jira/browse/YARN-4457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15290164#comment-15290164
]
Daniel Templeton commented on YARN-4457:
----------------------------------------
Oh, [~kasha], if only it were that simple. A {{Dispatcher}} is intended to
handle a variety of event types. The {{register()}} method lets classes
register a specific handler for a specific event type. It is really untyped
with respect to events. The confusion comes from the {{getEventHandler()}}
convenience method, which returns a generic event handler, not one of the ones
that was registered.
In theory we could have the method return an {{EventHandler<? extends Event>}},
which would be more specific. It doesn't actually change anything, however, as
the {{EventHandler.handle()}} method (it's only method) would still accept a
parameter of type {{Event}}, and it's bad practice to have a wildcarded type as
the return type. Wildcards are icky, and forcing callers to deal with them by
putting them in the return type is bad form.
> Cleanup unchecked types for EventHandler
> ----------------------------------------
>
> Key: YARN-4457
> URL: https://issues.apache.org/jira/browse/YARN-4457
> Project: Hadoop YARN
> Issue Type: Improvement
> Affects Versions: 2.7.1
> Reporter: Daniel Templeton
> Assignee: Daniel Templeton
> Attachments: YARN-4457.001.patch, YARN-4457.002.patch,
> YARN-4457.003.patch, YARN-4457.004.patch, YARN-4457.005.patch
>
>
> The EventHandler class is often used in an untyped context resulting in a
> bunch of warnings about unchecked usage. The culprit is the
> {{Dispatcher.getHandler()}} method. Fixing the typing on the method to
> return {{EventHandler<Event>}} instead of {{EventHandler}} clears up the
> errors and doesn't not introduce any incompatible changes. In the case that
> some code does:
> {code}
> EventHandler h = dispatcher.getHandler();
> {code}
> it will still work and will issue a compiler warning about raw types. There
> are, however, no instances of this issue in the current source base.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]