From f19da5ce89d4658052676777b66ecc3b8e483b7d Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Sun, 4 Mar 2018 16:12:59 -0600 Subject: [PATCH] Manually apply #178, report NPEs more explicitly --- src/main/java/com/xmlcalabash/extensions/Zip.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/xmlcalabash/extensions/Zip.java b/src/main/java/com/xmlcalabash/extensions/Zip.java index 18d96b74..afe2a96a 100644 --- a/src/main/java/com/xmlcalabash/extensions/Zip.java +++ b/src/main/java/com/xmlcalabash/extensions/Zip.java @@ -143,6 +143,9 @@ public void run() throws SaxonApiException { final String zipFn = getOption(_href).getString(); XdmNode man = S9apiUtils.getDocumentElement(manifest.read()); + if (man == null) { + throw new NullPointerException("XML document " + man.getDocumentURI() + " has no root element."); + } if (!c_zip_manifest.equals(man.getNodeName())) { throw new XProcException(step.getNode(), "The cx:zip manifest must be a c:zip-manifest."); @@ -151,6 +154,9 @@ public void run() throws SaxonApiException { while (source.moreDocuments()) { XdmNode doc = source.read(); XdmNode root = S9apiUtils.getDocumentElement(doc); + if (root == null) { + throw new NullPointerException("XML document " + doc.getDocumentURI() + " has no root element."); + } srcManifest.put(root.getBaseURI().toASCIIString(), doc); }