diff --git a/xoai-service-provider/src/main/java/org/dspace/xoai/serviceprovider/parsers/MetadataParser.java b/xoai-service-provider/src/main/java/org/dspace/xoai/serviceprovider/parsers/MetadataParser.java index f4ef0d0..31df2fc 100644 --- a/xoai-service-provider/src/main/java/org/dspace/xoai/serviceprovider/parsers/MetadataParser.java +++ b/xoai-service-provider/src/main/java/org/dspace/xoai/serviceprovider/parsers/MetadataParser.java @@ -39,10 +39,11 @@ public class MetadataParser { private Element parseElement(XmlReader reader) throws XmlReaderException { Element element = new Element(reader.getAttributeValue(name())); - while (reader.next(startElement(), startField(), endOfMetadata()).current(startElement())) { + if (! reader.current(theEndOfDocument())) + reader.next(startElement(), startField(), endOfMetadata()); + while (reader.current(startElement())) { element.withElement(parseElement(reader)); } - while (reader.current(startField())) { Field field = new Field() .withName(reader.getAttributeValue(name())); @@ -53,7 +54,6 @@ public class MetadataParser { element.withField(field); reader.next(startField(), endElement()); } - return element; }