Index: ../registry/registry-metadata-service/src/test/resources/eml/sample.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- ../registry/registry-metadata-service/src/test/resources/eml/sample.xml	(revision 3340)
+++ ../registry/registry-metadata-service/src/test/resources/eml/sample.xml	(revision )
@@ -187,6 +187,11 @@
           <taxonRankValue>Plantae</taxonRankValue>
           <commonName>Plants</commonName>
         </taxonomicClassification>
+        <taxonomicClassification>
+          <taxonRankName>kingggggggggggggdom</taxonRankName>
+          <taxonRankValue>Animalia</taxonRankValue>
+          <commonName>Animals</commonName>
+        </taxonomicClassification>
       </taxonomicCoverage>
     </coverage>
 
Index: ../registry/registry-metadata-service/src/main/java/org/gbif/registry/metadata/parse/RankTypeConverter.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- ../registry/registry-metadata-service/src/main/java/org/gbif/registry/metadata/parse/RankTypeConverter.java	(revision 3340)
+++ ../registry/registry-metadata-service/src/main/java/org/gbif/registry/metadata/parse/RankTypeConverter.java	(revision )
@@ -33,16 +33,19 @@
 
   /**
    * Convert a String into a InterpretedEnum<String, Rank>. The Rank type is determined from the input String. If the
-   * conversion was not successful, null is returned.
+   * conversion was not successful, an InterpretedEnum is returned that preserves the verbatim value, and sets
+   * the interpreted Rank to null.
-   * 
+   *
-   * @param type Data type to which this value should be converted.
+   * @param type  Data type to which this value should be converted.
    * @param value The input value to be converted.
+   *
    * @return The InterpretedEnum, or null if the conversion was not successful.
    */
   @Override
   protected Object convertToType(Class type, Object value) {
     ParseResult<InterpretedEnum<String, Rank>> result = InterpretedRankParser.getInstance().parse(value.toString());
-    return result.getStatus() == ParseResult.STATUS.SUCCESS ? result.getPayload() : null;
+    return result.getStatus() == ParseResult.STATUS.SUCCESS ? result.getPayload()
+      : new InterpretedEnum<String, Rank>(value.toString(), null);
   }
 
   /**
Index: ../registry/registry-metadata-service/src/test/java/org/gbif/registry/metadata/parse/EmlParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- ../registry/registry-metadata-service/src/test/java/org/gbif/registry/metadata/parse/EmlParserTest.java	(revision 3340)
+++ ../registry/registry-metadata-service/src/test/java/org/gbif/registry/metadata/parse/EmlParserTest.java	(revision )
@@ -27,6 +27,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -205,6 +206,11 @@
       assertEquals(Rank.KINGDOM, dataset.getTaxonomicCoverages().get(1).getCoverages().get(1).getRank().getInterpreted());
       assertEquals("Plantae", dataset.getTaxonomicCoverages().get(1).getCoverages().get(1).getScientificName());
       assertEquals("Plants", dataset.getTaxonomicCoverages().get(1).getCoverages().get(1).getCommonName());
+      // 3nd classification with uninterpretable Rank. Only the verbatim value is preserved
+      assertEquals("kingggggggggggggdom", dataset.getTaxonomicCoverages().get(1).getCoverages().get(2).getRank().getVerbatim());
+      assertNull(dataset.getTaxonomicCoverages().get(1).getCoverages().get(2).getRank().getInterpreted());
+      assertEquals("Animalia", dataset.getTaxonomicCoverages().get(1).getCoverages().get(2).getScientificName());
+      assertEquals("Animals", dataset.getTaxonomicCoverages().get(1).getCoverages().get(2).getCommonName());
 
       // sampling methods
       assertNotNull(dataset.getSamplingDescription());
