MIME4J-307 AbstractHeader::getField (with cast) should handle missing header (#59)

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 <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.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 @@
         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));
+    }
+
 }