You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2015/08/05 10:07:04 UTC

[jira] [Updated] (CAMEL-9048) camel-core causes restart of karaf console if it is refreshed

     [ https://issues.apache.org/jira/browse/CAMEL-9048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CAMEL-9048:
---------------------------------------
    Fix Version/s: 2.15.3

> camel-core causes restart of karaf console if it is refreshed
> -------------------------------------------------------------
>
>                 Key: CAMEL-9048
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9048
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-osgi
>    Affects Versions: 2.15.2
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 2.16.0, 2.15.3
>
>
> Start karaf 4.0.0
> feature:repo-add mvn:org.apache.cxf.karaf/apache-cxf/3.1.1/xml/features
> feature:repo-add mvn:org.apache.camel.karaf/apache-camel/2.15.2/xml/features
> feature:install camel-core
> feature:install -v wss4j
> The last feature install causes the karaf shell to restart. The refreshed bundles list shows this:
>     jline/2.12.1 (Wired to org.apache.camel.camel-core/2.15.2 which is being refreshed)
>     org.apache.camel.camel-core/2.15.2 (Should be wired to: org.apache.servicemix.bundles.xalan/2.7.1.7 (through [org.apache.camel.camel-core/2.15.2] osgi.wiring.package; filter:="(osgi.wiring.package=org.apache.xalan.xsltc.trax)"; resolution:=optional))
> So this shows that the immediate reason is that jline was refreshed. As jline is used by the shell it also restarts.
> Now it might seem strange that jline depends on camel-core. I had a similar issue in activemq-core Activator. It probed the classloaders of all bundles for well known interfaces to find extensions. I think camel-core does the same. The problem here is that jline has a dynamic import package: *. So the bundle classloader of jline is able to find any camel interface and will then have a wire to camel-core. So if then there is a refresh of camel-core it also will be refreshed.
> This issue can hit all bundles that have a dynamic import package *. 
> the solution is to not actually load interface classes but rather check the bundle wiring if there is a wiring to an interface package. This will then not change the wirings and so not cause these problems.
> I will try to provide a fix for the problem.



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