You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Dariush Amiri (JIRA)" <ji...@apache.org> on 2016/12/08 20:53:59 UTC

[jira] [Created] (KARAF-4885) Karaf does not gracefully handle a feature with a prerequisite feature that is already installed

Dariush Amiri created KARAF-4885:
------------------------------------

             Summary: Karaf does not gracefully handle a feature with a prerequisite feature that is already installed
                 Key: KARAF-4885
                 URL: https://issues.apache.org/jira/browse/KARAF-4885
             Project: Karaf
          Issue Type: Bug
    Affects Versions: 4.1.0
            Reporter: Dariush Amiri


Here is a project on github that reproduces this issue:
https://github.com/damiri-ts/karaf-features-issue

After more investigation, the root cause seems to be the inability of karaf to gracefully handle situations where a child feature has a prerequisite feature that is already installed as part of a parent feature. It's confusing so I've included the feature definition below. Note that the aries-blueprint feature shows up twice.

    <feature name="something-else" version="${project.version}" description="Something else">
        <feature prerequisite="true">jasypt-encryption</feature>
        <feature prerequisite="true">aries-blueprint</feature>
    </feature>

    <feature name="example" version="${project.version}" description="Example">
        <feature>framework</feature>
        <feature>wrap</feature>
        <feature>aries-blueprint</feature>
        <feature>shell</feature>
        <feature>shell-compat</feature>
        <feature>feature</feature>
        <feature>jaas</feature>
        <feature>ssh</feature>
        <feature>management</feature>
        <feature>bundle</feature>
        <feature>config</feature>
        <feature>deployer</feature>
        <feature>diagnostic</feature>
        <feature>instance</feature>
        <feature>kar</feature>
        <feature>log</feature>
        <feature>package</feature>
        <feature>service</feature>
        <feature>system</feature>

        <feature>scr</feature>
        <feature>jetty</feature>
        <feature>pax-http-whiteboard</feature>

        <feature>something-else</feature>
    </feature>

This manifests itself in the logs like this:

2016-12-05T18:23:57,843 | ERROR | FelixStartLevel  | 
Felix                            |  -  -  | Bundle org.objectweb.asm.all 
[54] Error locking mvn:org.ow2.asm/asm-all/6.0_ALPHA 
(java.lang.IllegalStateException: Bundle in unexpected state.)
java.lang.IllegalStateException: Bundle in unexpected state.
     at 
org.apache.felix.framework.Felix.acquireBundleLock(Felix.java:5272) [?:?]
     at 
org.apache.felix.framework.Felix.setBundleStartLevel(Felix.java:1524) [?:?]
     at 
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:338) 
[?:?]
     at java.lang.Thread.run(Thread.java:745) [?:?]
2016-12-05T18:23:57,844 | INFO  | CM Configuration Updater 
(ManagedService Update: pid=[org.apache.cxf.osgi]) | 
TldScanner                       | 189 - org.ops4j.pax.web.pax-web-jsp - 
4.4.0 | found TLD bundle://189.0:0/META-INF/c.tld
2016-12-05T18:23:57,841 | ERROR | FelixDispatchQueue | 
all                              | 184 - org.objectweb.asm.all - 5.0.2 | 
FrameworkEvent ERROR - org.objectweb.asm.all
java.lang.IllegalStateException: Bundle in unexpected state.
     at 
org.apache.felix.framework.Felix.acquireBundleLock(Felix.java:5272) [?:?]
     at 
org.apache.felix.framework.Felix.setBundleStartLevel(Felix.java:1524) [?:?]
     at 
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:338) 
[?:?]
     at java.lang.Thread.run(Thread.java:745) [?:?]




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)