From 8648ed573608c6267ac74556b34af4784619044a Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sun, 10 Aug 2014 07:10:59 -0500 Subject: [PATCH] Manifest: add some defensive programming This guards against the wrapped manifest being null, as well as the wrapped manifest's main attributes being null for some reason. Intended to address (the symptom, at least) of Fiji bug 889: http://fiji.sc/bugzilla/show_bug.cgi?id=889 --- src/main/java/org/scijava/util/Manifest.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/scijava/util/Manifest.java b/src/main/java/org/scijava/util/Manifest.java index 0eafe95b1..eb1b68397 100644 --- a/src/main/java/org/scijava/util/Manifest.java +++ b/src/main/java/org/scijava/util/Manifest.java @@ -36,6 +36,7 @@ import java.net.URL; import java.util.Collections; import java.util.Map; +import java.util.jar.Attributes; /** * Helper class for working with JAR manifests. @@ -115,11 +116,17 @@ public String getSpecificationVersion() { } public String get(final String key) { - return manifest.getMainAttributes().getValue(key); + if (manifest == null) return null; + final Attributes mainAttrs = manifest.getMainAttributes(); + if (mainAttrs == null) return null; + return mainAttrs.getValue(key); } public Map getAll() { - return Collections.unmodifiableMap(manifest.getMainAttributes()); + if (manifest == null) return null; + final Attributes mainAttrs = manifest.getMainAttributes(); + if (mainAttrs == null) return null; + return Collections.unmodifiableMap(mainAttrs); } // -- Utility methods --