You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Robert Kanter (JIRA)" <ji...@apache.org> on 2014/05/13 01:45:17 UTC

[jira] [Commented] (OOZIE-1835) NullPointerException from SLAEmailEventListener

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

Robert Kanter commented on OOZIE-1835:
--------------------------------------

Actually, [~egashira], what should be the correct behavior when the user doesn't specify the "alert-contact" field?  I see later in the code that if we couldn't parse any to-addresses that it does this:
{code:java}
       if (to == null) {
            LOG.error("Destination address is null or invalid, stop sending SLA alert email");
            throw new IllegalArgumentException("Destination address is not specified properly");
        }
{code}

If this field is required whenever SLAEmailEventListener is enabled, then all SLA-enabled jobs/actions have to send out an email with a valid to-address.  What if the user wants most jobs to do JMS but some more important subset of jobs to also send Emails?  

I think it would make sense to make no to-addresses simply log a WARN and only throw an Exception if there is actually a problem parsing an address; do you agree?

> NullPointerException from SLAEmailEventListener
> -----------------------------------------------
>
>                 Key: OOZIE-1835
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1835
>             Project: Oozie
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 4.0.0
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>
> Both the documentation and specification say that the "alert-contact" SLA field is optional, at least when you don't want to send email notifications.  However, if you don't include it, you get a NullPointerException (though it doesn't seem to cause any problems):
> {noformat}
> 2014-04-17 22:02:16,664 ERROR org.apache.oozie.sla.listener.SLAEmailEventListener: SERVER[rkanter-5.ent.cloudera.com] USER[-] GROUP[-] TOKEN[-] APP[-] JOB[-] ACTION[-] Failed to send EndMiss alert email
> java.lang.NullPointerException
>         at org.apache.oozie.sla.listener.SLAEmailEventListener.parseAddress(SLAEmailEventListener.java:231)
>         at org.apache.oozie.sla.listener.SLAEmailEventListener.setMessageHeader(SLAEmailEventListener.java:262)
>         at org.apache.oozie.sla.listener.SLAEmailEventListener.sendSLAEmail(SLAEmailEventListener.java:163)
>         at org.apache.oozie.sla.listener.SLAEmailEventListener.onEndMiss(SLAEmailEventListener.java:200)
>         at org.apache.oozie.service.EventHandlerService$EventWorker.invokeSLAEventListener(EventHandlerService.java:297)
>         at org.apache.oozie.service.EventHandlerService$EventWorker.run(EventHandlerService.java:241)
>         at org.apache.oozie.service.SchedulerService$2.run(SchedulerService.java:174)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
> {noformat}
> We should give a friendlier WARN message instead.



--
This message was sent by Atlassian JIRA
(v6.2#6252)