Heiko Studt created FELIX-6510:
----------------------------------
Summary: NPE within HealthCheck BundlesStartedCheck for bad Bundle
Key: FELIX-6510
URL: https://issues.apache.org/jira/browse/FELIX-6510
Project: Felix
Issue Type: Improvement
Components: Health Checks
Reporter: Heiko Studt
TL;DR: If you have configured the BundlesStartedCheck and there was any bundle
installed without correct OSGI headers (ls is showing `null 0.0.0`), the
BundlesStartedCheck will report some NPE and does not log anything to file and
neither the reason nor a stack trace into the health-check frontend. The latter
(no stack-trace) is a good thing, though.
If you have switched on the debug-level "all", it will stop after some lines
"Bundle [...] not matched by [...]"; the exception itself is then swallowed and
not logged into the osgi runner log, so that one has to wonder why it has
happened.
In my osgi runner there was a bundle installed which was shown by "ls -l" as
"null 0.0.0". It was created from an unit-test jar included by an error.
According to removing that bundle is solving the problem, I assume the
following code is the culprit.
[https://github.com/apache/felix-dev/blob/5becb8f971f904334eb3f32e7eaa9126186a2898/healthcheck/generalchecks/src/main/java/org/apache/felix/hc/generalchecks/BundlesStartedCheck.java#L149]
b.getHeaders().get(Constants.BUNDLE_ACTIVATIONPOLICY)
In my point of view, we should add a null check for b.getHeader() or at least
report the culprit bundle name of the exception.
Should I create a Pull Request for the null check?
--
This message was sent by Atlassian Jira
(v8.20.1#820001)