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

Niranjan Singh commented on YARN-505:
-------------------------------------

The NPE is in the LinkedBlockingQueue class of JDK.

In handler.handle(null), the event which is null in this case is put in 
LinkedBlockingQueue ,
without checking whether the event is null or not.

 eventQueue.put(event);line 188 of org.apache.hadoop.yarn.event.AsyncDispatcher.

One solution could be to check for null when event is put in eventQueue below.

if(event != null){
    eventQueue.put(event);
 }else{
     LOG.warn("Event cannot be null"+event);
}

                
> NPE at AsyncDispatcher$GenericEventHandler
> ------------------------------------------
>
>                 Key: YARN-505
>                 URL: https://issues.apache.org/jira/browse/YARN-505
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: resourcemanager
>    Affects Versions: 3.0.0
>            Reporter: Przemyslaw Pretki
>            Priority: Minor
>
> Steps to reproduce:
> {code}
> @Test
> public void testAsyncDispatcher() 
> {
>     AsyncDispatcher dispatcher = new AsyncDispatcher();
>     EventHandler handler = dispatcher.getEventHandler();
>     handler.handle(null);
> }
> {code}
> Moreover, event taken from *BlockingQueue* will never be *null*, so that it 
> seems that the following condition is not necessary 
> (AsyncDispatcher.createThread() method): 
> {code}
> if (event != null) {
>     dispatch(event);
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to