JochenHiller commented on PR #190:
URL: https://github.com/apache/felix-dev/pull/190#issuecomment-1355226380
Thanks a lot for your comment @tjwatson
> If a bundle changes another bundles start-level during the start-level
processing such that the bundle must be stopped or started according to the
current start level then that operation must be queued up to happen
asynchronously. That is until the current start-level framework setting is
fully processed to the "final" start-level. Any bundles that have not been
processed yet should use the synchronously persisted start-level value for the
bundle. Any bundles that have already been processed by the framework
start-level change operation will "catch-up" after the "final" framework
start-level has be reached and processed. That is they will get the async job
that got queued up run at this point to either stop/start the bundle according
to the current state of the framework start-level and the bundle's start-level.
If I get you right, than the test case is invalid, or? If I first set
framework start level of 11 (lower than the changed 20-40) after bundle M has
been running, and then AFTERWARDS go to 100 then it does work, bundle start
order will be recalculated. I verified that with test case.
I am unsure what shall happen if initial bundle start level is e.g. 12,
bundle M will manipulate to 20-40, and framework start level is 15. We got this
ERROR message
```
ERROR: Bundle A [1] Error starting
file:/var/folders/vy/jx2pf8_12ygf55yqsp6xz9t00000gq/T/generated-bundles5059031965402415424.dir/bundleA-6783478623024065226.jar
(org.osgi.framework.BundleException: Cannot start bundle A [1] because its
start level is 40, which is greater than the framework's start level of 12.)
org.osgi.framework.BundleException: Cannot start bundle A [1] because its
start level is 40, which is greater than the framework's start level of 12.
at org.apache.felix.framework.Felix.startBundle(Felix.java:2227)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1590)
at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:315)
at java.lang.Thread.run(Thread.java:748)
```
Is that ERROR ok if we change the bundle start level during the phase to go
to request framework start level?
It seems it does not have any implications except we get this ERROR log.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]