[
https://issues.apache.org/jira/browse/FELIX-2318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12863839#action_12863839
]
Marco commented on FELIX-2318:
------------------------------
Yesterday, I stumbled exactly over this NPE, which was not very developer
friendly and forced me to dig quite deep into it (decompiling & debugging).
I'm not sure whether I can agree to Sahoo's suggestion to return a value in
this case. I mean, if there is no proper MANIFEST, it is not a valid OSGi
bundle and thus the method installOrUpdateBundle(...) cannot really return
anything meaningful. Or am I overlooking anything?
Anyway, for me (and everyone else not being aware of the MANIFEST.MF being
required at the very beginning of the JAR) a simple exception with a precise
error message would have been most helpful. I therefore recommend to simply add
sth. like this:
if (m == null)
throw new BundleException(
String.format(
"The bundle %s does not have a META-INF/MANIFEST.MF! "+
"Make sure, META-INF and MANIFEST.MF are the first 2 entries in your
JAR!",
bundleLocation
)
);
> Possible NPE for jars with null Manifest
> ----------------------------------------
>
> Key: FELIX-2318
> URL: https://issues.apache.org/jira/browse/FELIX-2318
> Project: Felix
> Issue Type: Bug
> Components: File Install
> Reporter: Sahoo
>
> JarFile.getManifest() can return null, so caller must check return value for
> null-ness to avoid NPE. I see two such occurrences in fileinstall:
> DirectoryWatcher.java:
> private Bundle installOrUpdateBundle(
> String bundleLocation, BufferedInputStream is, long checksum)
> throws IOException, BundleException
> {
> is.mark(256 * 1024);
> JarInputStream jar = new JarInputStream(is);
> Manifest m = jar.getManifest();
> String sn =
> m.getMainAttributes().getValue(Constants.BUNDLE_SYMBOLICNAME);
> ...
> BundleTransformer.java:
> Manifest m = jar.getManifest();
> if (m.getMainAttributes().getValue(new
> Attributes.Name("Bundle-SymbolicName")) != null)
> ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.