Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-3864

Warning when shutting down system with karaf-cellar installed

    XMLWordPrintableJSON

Details

    Description

      We're experimenting with karaf-cellar 3.0.3 on top of karaf 3.0.4 and get the following warning if the system is forcibly stopped:

      2015-07-20 16:19:03,397+0100 WARN  [FelixShutdown]  org.apache.karaf.cellar.bundle.LocalBundleListener - CELLAR BUNDLE: can't check listener configuration
      org.osgi.service.blueprint.container.ServiceUnavailableException: The Blueprint container is being or has been destroyed: (objectClass=org.osgi.service.cm.ConfigurationAdmin)
      	at org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:240) [org.apache.aries.blueprint.core:1.4.3]
      	at org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:55) [org.apache.aries.blueprint.core:1.4.3]
      	at org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:298) [org.apache.aries.blueprint.core:1.4.3]
      	at Proxy90cff4fa_9fee_4d56_85e6_c006a413befa.getConfiguration(Unknown Source) [na:na]
      	at org.apache.karaf.cellar.bundle.LocalBundleListener.isEnabled(LocalBundleListener.java:150) [org.apache.karaf.cellar.bundle:3.0.4.SNAPSHOT]
      	at org.apache.karaf.cellar.bundle.LocalBundleListener.bundleChanged(LocalBundleListener.java:51) [org.apache.karaf.cellar.bundle:3.0.4.SNAPSHOT]
      	at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868) [org.apache.felix.framework-4.2.1.jar:na]
      	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789) [org.apache.felix.framework-4.2.1.jar:na]
      	at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:514) [org.apache.felix.framework-4.2.1.jar:na]
      	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403) [org.apache.felix.framework-4.2.1.jar:na]
      	at org.apache.felix.framework.Felix.stopBundle(Felix.java:2520) [org.apache.felix.framework-4.2.1.jar:na]
      	at org.apache.felix.framework.Felix$2.run(Felix.java:959) [org.apache.felix.framework-4.2.1.jar:na]
      	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80]
      

      Looking at the LocalBundleListener code it checks if the listener is enabled before going on to check whether the system is shutting down. However the "isEnabled" check uses the blueprint-injected ConfigurationAdmin service which is not available during shutdown. Swapping these checks round fixes the issue.

      Attachments

        1. KARAF-3864-swap-checks.patch
          1 kB
          Stuart McCulloch

        Activity

          People

            jbonofre Jean-Baptiste Onofré
            mcculls Stuart McCulloch
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: