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]

Reply via email to