[ https://issues.apache.org/jira/browse/KARAF-1894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste Onofré updated KARAF-1894: ---------------------------------------- Fix Version/s: (was: 3.0.0) 3.0.1 > Framework's active start level is set to > org.osgi.framework.startlevel.beginning too early when launching Karaf with > empty bundle cache > --------------------------------------------------------------------------------------------------------------------------------------- > > Key: KARAF-1894 > URL: https://issues.apache.org/jira/browse/KARAF-1894 > Project: Karaf > Issue Type: Bug > Affects Versions: 2.2.9, 3.0.0 > Environment: Mac 10.8.2/Oracle JDK 1.6.0_35 > Reporter: Jason Montojo > Assignee: Jean-Baptiste Onofré > Fix For: 2.2.12, 2.4.0, 3.0.1, 2.3.4 > > Attachments: slbug.tar-3.0.gz, slbug.tar.gz > > > When launching Karaf 2.2.9 with an empty bundle cache, the framework's active > start level is already set to org.osgi.framework.startlevel.beginning before > all the boot features have been started. The impact is that bundles can be > loaded in the wrong order, and File Install ends up scanning the deploy > folder when it's not supposed to. > This is problematic because we're using boot features to load up our core > infrastructure and the deploy folder to host plugins. If we prepackage any > plugins with our product with an empty bundle cache, the plugins get > installed and started before the core. > The attached tarball contains a set of 3 bundles that reproduce the symptoms. > Simply untar within the apache-karaf-2.2.9 directory. > In the test tarball, there are 3 bundles that do the same thing. When > start() is called, they print out their name and the framework's current > start level, then wait for 1 second. > bundle1 (start-level=60) and bundle2 (start-level=80) are part of a boot > feature. However, bundle2 is listed first in the XML. bundle3 is in the > deploy directory. File Install is configured so that it doesn't scan until > start level 81 (via felix.fileinstall.active.level). > I'm expecting that the bundles are loaded in this order: bundle1, bundle2, > bundle3. > If I clear the bundle cache and start Karaf, I get the following output: > [bundle2] 100 > [bundle3] 100 > [bundle1] 100 > This indicates that when bundle2's start() is called, the framework's start > level is already set to org.osgi.framework.startlevel.beginning (in this > case, 100) before the boot features have started. > If I run Karaf again without clearing the bundle cache, I get the following: > [bundle1] 60 > [bundle2] 80 > [bundle3] 80 > This is better, but felix.fileinstall.active.level is set to 81, so bundle3 > should not be starting at start level 80. This is probably a separate issue. -- This message was sent by Atlassian JIRA (v6.1#6144)