Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-9048

camel-core causes restart of karaf console if it is refreshed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.15.2
    • 2.15.3, 2.16.0
    • camel-osgi
    • None
    • Unknown

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              cschneider Christian Schneider
              cschneider Christian Schneider
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: