Repository: oozie
Updated Branches:
  refs/heads/master 2dfaa4a74 -> 91df71edc


OOZIE-1835 NullPointerException from SLAEmailEventListener (rkanter)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/91df71ed
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/91df71ed
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/91df71ed

Branch: refs/heads/master
Commit: 91df71edca0d7590da7dafc30936a397d2e1463d
Parents: 2dfaa4a
Author: Robert Kanter <[email protected]>
Authored: Fri May 16 10:35:48 2014 -0700
Committer: Robert Kanter <[email protected]>
Committed: Fri May 16 10:35:48 2014 -0700

----------------------------------------------------------------------
 .../sla/listener/SLAEmailEventListener.java     | 14 +++++++++----
 .../oozie/sla/TestSLAEmailEventListener.java    | 22 ++++++++++++++++++++
 release-log.txt                                 |  1 +
 3 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/91df71ed/core/src/main/java/org/apache/oozie/sla/listener/SLAEmailEventListener.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/oozie/sla/listener/SLAEmailEventListener.java 
b/core/src/main/java/org/apache/oozie/sla/listener/SLAEmailEventListener.java
index 31ce454..fbf701b 100644
--- 
a/core/src/main/java/org/apache/oozie/sla/listener/SLAEmailEventListener.java
+++ 
b/core/src/main/java/org/apache/oozie/sla/listener/SLAEmailEventListener.java
@@ -159,10 +159,16 @@ public class SLAEmailEventListener extends 
SLAEventListener {
     }
 
     private void sendSLAEmail(SLAEvent event) throws Exception {
-        Message message = new MimeMessage(session);
-        setMessageHeader(message, event);
-        setMessageBody(message, event);
-        sendEmail(message);
+        // If no address is provided, the user did not want to send an email 
so simply log it and do nothing
+        if (event.getAlertContact() == null || 
event.getAlertContact().trim().length() == 0) {
+            LOG.info("No destination address provided; an SLA alert email will 
not be sent");
+        } else {
+            // Create and send an email
+            Message message = new MimeMessage(session);
+            setMessageHeader(message, event);
+            setMessageBody(message, event);
+            sendEmail(message);
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/oozie/blob/91df71ed/core/src/test/java/org/apache/oozie/sla/TestSLAEmailEventListener.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/oozie/sla/TestSLAEmailEventListener.java 
b/core/src/test/java/org/apache/oozie/sla/TestSLAEmailEventListener.java
index bd9fbdf..f2f5a21 100644
--- a/core/src/test/java/org/apache/oozie/sla/TestSLAEmailEventListener.java
+++ b/core/src/test/java/org/apache/oozie/sla/TestSLAEmailEventListener.java
@@ -340,6 +340,28 @@ public class TestSLAEmailEventListener extends XTestCase {
         assertEquals(msgs.length, 0);
     }
 
+    public void testNoDestAddress() throws Exception {
+        SLACalcStatus event = new SLACalcStatus(new SLARegistrationBean());
+        SLARegistrationBean eventBean = event.getSLARegistrationBean();
+        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
+        // set empty address as alert contact
+        eventBean.setAlertContact("");
+        event.setEventStatus(EventStatus.START_MISS);
+        event.setId("0000000-000000000000001-oozie-wrkf-C@1");
+        eventBean.setAppType(AppType.COORDINATOR_ACTION);
+        eventBean.setAppName("Test-SLA-Start-Miss");
+        eventBean.setUser("dummyuser");
+        eventBean.setExpectedStart(startDate);
+        eventBean.setNotificationMsg("notification of start miss");
+        eventBean.setAppType(AppType.COORDINATOR_ACTION);
+        event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));
+
+        slaEmailListener.onStartMiss(event);
+
+        MimeMessage[] msgs = greenMail.getReceivedMessages();
+        assertEquals(msgs.length, 0);
+    }
+
     public void testMultipleDestAddress() throws Exception {
         SLACalcStatus event = new SLACalcStatus(new SLARegistrationBean());
         SLARegistrationBean eventBean = event.getSLARegistrationBean();

http://git-wip-us.apache.org/repos/asf/oozie/blob/91df71ed/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index f558f59..86642f1 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.1.0 release (trunk - unreleased)
 
+OOZIE-1835 NullPointerException from SLAEmailEventListener (rkanter)
 OOZIE-1809 offset and len options are ignored in oozie job -info for workflow 
(ryota)
 OOZIE-1826 Add thread which detects JVM pauses (rkanter)
 OOZIE-1791 add IGNORED status to Coordinator Job and Action (ryota)

Reply via email to