This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-mime4j.git
The following commit(s) were added to refs/heads/master by this push: new dad47b4 MIME4J-307 AbstractHeader::getField (with cast) should handle missing header (#59) dad47b4 is described below commit dad47b4c6050bd52fa7d9ba1cc51daa0d63a87c0 Author: Benoit TELLIER <btell...@linagora.com> AuthorDate: Tue Sep 28 09:29:41 2021 +0700 MIME4J-307 AbstractHeader::getField (with cast) should handle missing header (#59) --- .../org/apache/james/mime4j/message/AbstractHeader.java | 3 +++ .../test/java/org/apache/james/mime4j/dom/MessageTest.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java b/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java index c83de6f..7b1af55 100644 --- a/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java +++ b/dom/src/main/java/org/apache/james/mime4j/message/AbstractHeader.java @@ -125,6 +125,9 @@ public abstract class AbstractHeader implements Header { */ public <F extends Field> F getField(final String name, final Class<F> clazz) { List<Field> l = fieldMap.get(name.toLowerCase(Locale.US)); + if (l == null) { + return null; + } for (int i = 0; i < l.size(); i++) { Field field = l.get(i); if (clazz.isInstance(field)) { diff --git a/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java b/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java index ce4de42..3a1a2e2 100644 --- a/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java +++ b/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java @@ -32,6 +32,7 @@ import org.apache.james.mime4j.dom.address.Mailbox; import org.apache.james.mime4j.dom.address.MailboxList; import org.apache.james.mime4j.dom.field.ContentTypeField; import org.apache.james.mime4j.dom.field.FieldName; +import org.apache.james.mime4j.dom.field.MailboxField; import org.apache.james.mime4j.field.DefaultFieldParser; import org.apache.james.mime4j.field.Fields; import org.apache.james.mime4j.field.address.DefaultAddressParser; @@ -432,4 +433,17 @@ public class MessageTest { Assert.assertSame(original.getBody().getClass(), builder.getBody().getClass()); } + @Test + public void getFieldShouldReturnNullOnMissingHeader() throws Exception { + Message original = Message.Builder.of() + .generateMessageId("hostname") + .setSubject("testing ...") + .setFrom("batman@localhost", "superman@localhost") + .setTo("\"Big momma\" <big_momma@localhost>") + .setBody("Yo, big momma!", Charsets.UTF_8) + .build(); + + Assert.assertNull(original.getHeader().getField("Sender", MailboxField.class)); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org