diff --git a/src/main/java/org/swordapp/server/SwordAPIEndpoint.java b/src/main/java/org/swordapp/server/SwordAPIEndpoint.java index a5a8358..a4da123 100644 --- a/src/main/java/org/swordapp/server/SwordAPIEndpoint.java +++ b/src/main/java/org/swordapp/server/SwordAPIEndpoint.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import org.apache.abdera.parser.ParseException; public class SwordAPIEndpoint { @@ -347,12 +348,18 @@ protected Element getGenerator(SwordConfiguration config) } protected void addDepositPropertiesFromEntry(Deposit deposit, HttpServletRequest req) - throws IOException + throws IOException, SwordError { InputStream entryPart = req.getInputStream(); Abdera abdera = new Abdera(); Parser parser = abdera.getParser(); - Document entryDoc = parser.parse(entryPart); + Document entryDoc = null; + try { + entryDoc = parser.parse(entryPart); + } + catch (ParseException ex) { + throw new SwordError("Unable to parse SWORD entry: " + ex); + } Entry entry = entryDoc.getRoot(); deposit.setEntry(entry); }