diff --git a/WHATSNEW b/WHATSNEW index e6398ed94..c7ae71988 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -244,6 +244,9 @@ Fixed bugs: worked if JavaMail was available. Bugzilla Report 42389. + * MailLogger could cause a NullPointerException. + Bugzilla Report 44009. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/listener/MailLogger.java b/src/main/org/apache/tools/ant/listener/MailLogger.java index 29757cd76..b43b58f28 100644 --- a/src/main/org/apache/tools/ant/listener/MailLogger.java +++ b/src/main/org/apache/tools/ant/listener/MailLogger.java @@ -355,6 +355,7 @@ public class MailLogger extends DefaultLogger { mailer.setBccList(new Vector()); mailer.setFiles(new Vector()); mailer.setSubject(values.subject()); + mailer.setHeaders(new Vector()); mailer.send(); } private Vector vectorizeEmailAddresses(String listString) { diff --git a/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java b/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java index 1ef73901f..501004845 100644 --- a/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java +++ b/src/main/org/apache/tools/ant/taskdefs/email/MimeMailer.java @@ -202,10 +202,12 @@ public class MimeMailer extends Mailer { } msg.addHeader("Date", getDate()); + if (headers != null) { for (Iterator iter = headers.iterator(); iter.hasNext();) { Header h = (Header) iter.next(); msg.addHeader(h.getName(), h.getValue()); } + } PrintStream out = new PrintStream(sds.getOutputStream()); message.print(out); out.close(); diff --git a/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java b/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java index 8d85ef2e2..307ccd20a 100644 --- a/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java +++ b/src/main/org/apache/tools/ant/taskdefs/email/PlainMailer.java @@ -71,11 +71,13 @@ class PlainMailer extends Mailer { } else { mailMessage.setHeader("Content-Type", message.getMimeType()); } + if (headers != null) { e = headers.elements(); while (e.hasMoreElements()) { Header h = (Header) e.nextElement(); mailMessage.setHeader(h.getName(), h.getValue()); } + } PrintStream out = mailMessage.getPrintStream(); message.print(out);