Paul Mabus created KARAF-4988:
---------------------------------

             Summary: Refreshing a feature repository from webconsole fails
                 Key: KARAF-4988
                 URL: https://issues.apache.org/jira/browse/KARAF-4988
             Project: Karaf
          Issue Type: Bug
          Components: karaf-feature, webconsole
    Affects Versions: 4.0.8, 4.0.7
         Environment: Window 10
Fresh, default install of karaf with webconsole feature loaded
            Reporter: Paul Mabus
            Priority: Minor


Refreshing a features repository through the webconsole fails.  The traceback 
in the karaf log indicates the feature repo is first removed, and this attempts 
to remove all the individual features - and fails when it encounters a feature 
that has not actually been installed.

Fix: The correct behaviour should be to reload the repo definition and then 
check each feature to see if it is installed or not - and present that in the 
response to the webconsole.  

Enhance #1: Could also include a warning in the log where a feature installed 
from the old definition is no longer present in the new feature repo.  User 
would then have to manually remove the bundles to get rid of the old feature.

Enhance #2: Add an option to feature repository refresh to let user choose to 
either uninstall or leave in place, features that have been removed from the 
new repo definition.

{noformat}
2017-02-15 12:53:59,027 | ERROR | qtp428960967-114 | FeaturesPlugin             
      | 55 - org.apache.karaf.webconsole.features - 4.0.8 | Can't refresh 
features repository mvn:org.apache.karaf.features/standard/4.0.8/xml/features
java.lang.IllegalArgumentException: Feature named 'eventadmin/4.0.8' is not 
installed
        at 
org.apache.karaf.features.internal.service.FeaturesServiceImpl.uninstallFeatures(FeaturesServiceImpl.java:997)
        at 
org.apache.karaf.features.internal.service.FeaturesServiceImpl.uninstallFeatures(FeaturesServiceImpl.java:872)
        at 
org.apache.karaf.features.internal.service.FeaturesServiceImpl.removeRepository(FeaturesServiceImpl.java:528)
        at 
org.apache.karaf.features.internal.service.FeaturesServiceImpl.removeRepository(FeaturesServiceImpl.java:491)
        at 
org.apache.karaf.webconsole.features.FeaturesPlugin.refreshRepository(FeaturesPlugin.java:227)
        at 
org.apache.karaf.webconsole.features.FeaturesPlugin.doPost(FeaturesPlugin.java:101)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at 
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:567)
        at 
org.apache.felix.webconsole.internal.servlet.KarafOsgiManager.doService(KarafOsgiManager.java:78)[54:org.apache.karaf.webconsole.console:4.0.8]
        at 
org.apache.felix.webconsole.internal.servlet.KarafOsgiManager$1.run(KarafOsgiManager.java:58)
        at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_45]
        at 
org.apache.karaf.util.jaas.JaasHelper.doAs(JaasHelper.java:113)[54:org.apache.karaf.webconsole.console:4.0.8]
        at 
org.apache.felix.webconsole.internal.servlet.KarafOsgiManager.service(KarafOsgiManager.java:56)[54:org.apache.karaf.webconsole.console:4.0.8]
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[75:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[75:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at 
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)[92:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[73:org.eclipse.jetty.security:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)[92:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[75:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[92:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.Server.handle(Server.java:499)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[74:org.eclipse.jetty.server:9.2.19.v20160908]
        at 
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[66:org.eclipse.jetty.io:9.2.19.v20160908]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[77:org.eclipse.jetty.util:9.2.19.v20160908]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[77:org.eclipse.jetty.util:9.2.19.v20160908]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]

{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to