You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2018/02/23 07:28:00 UTC

[jira] [Resolved] (SLING-7467) JcrInstaller fails to startup if wrong sling:OsgiConfig is present

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

Carsten Ziegeler resolved SLING-7467.
-------------------------------------
    Resolution: Fixed

Fixed in rev 1c2032d by ignoring all exceptions that might occur during a resource processing in the installer

> JcrInstaller fails to startup if wrong sling:OsgiConfig is present
> ------------------------------------------------------------------
>
>                 Key: SLING-7467
>                 URL: https://issues.apache.org/jira/browse/SLING-7467
>             Project: Sling
>          Issue Type: Bug
>          Components: Installer
>         Environment: osx
>            Reporter: Lukas Kummer
>            Assignee: Carsten Ziegeler
>            Priority: Major
>             Fix For: Installer Core 3.8.14
>
>         Attachments: org.apache.felix.webconsole.plugins.event.internal.PluginServlet.config
>
>
> After deploying a wrong osgi config, JcrInstaller won't get active again, if launchpad is restarted.
> Reproduction steps:
>  * start launchpad
> {code:java}
> java -jar org.apache.sling.launchpad-9.jar
> {code}
>  * create info logger for class org.apache.sling.installer.provider.jcr.impl.JcrInstaller with Info Level
>  * create wrong OSGi org.apache.felix.webconsole.plugins.event.internal.PluginServlet.config file
> {code:java}
> max.size=I"sfdg"
> service.pid="org.apache.felix.webconsole.plugins.event.internal.PluginServlet"
> {code}
>  * deploy the previous created OSGi config file
> {code:java}
> curl -v -F 'org.apache.felix.webconsole.plugins.event.internal.PluginServlet.config=@org.apache.felix.webconsole.plugins.event.internal.PluginServlet.config' \
> -F "jcr:primaryType=sling:OsgiConfig" \
> http://admin:admin@localhost:8080/apps/jcrtest/install
> {code}
>  * JcrInstaller creates log entry:
> {code:java}
> 02.02.2018 15:17:31.872 *WARN* [JcrInstaller.2] org.apache.sling.installer.provider.jcr.impl.JcrInstaller Exception in runOneCycle()
> java.lang.NumberFormatException: For input string: "sfdg"
> 	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
> 	at java.lang.Integer.parseInt(Integer.java:580)
> 	at java.lang.Integer.valueOf(Integer.java:766)
> 	at org.apache.felix.cm.file.ConfigurationHandler.readSimple(ConfigurationHandler.java:457)
> 	at org.apache.felix.cm.file.ConfigurationHandler.readValue(ConfigurationHandler.java:352)
> 	at org.apache.felix.cm.file.ConfigurationHandler.readInternal(ConfigurationHandler.java:306)
> 	at org.apache.felix.cm.file.ConfigurationHandler.read(ConfigurationHandler.java:265)
> 	at org.apache.sling.installer.core.impl.InternalResource.readDictionary(InternalResource.java:257)
> 	at org.apache.sling.installer.core.impl.InternalResource.create(InternalResource.java:98)
> 	at org.apache.sling.installer.core.impl.OsgiInstallerImpl.createResources(OsgiInstallerImpl.java:373)
> 	at org.apache.sling.installer.core.impl.OsgiInstallerImpl.updateResources(OsgiInstallerImpl.java:413)
> 	at org.apache.sling.installer.provider.jcr.impl.JcrInstaller.runOneCycle(JcrInstaller.java:549)
> 	at org.apache.sling.installer.provider.jcr.impl.JcrInstaller$StoppableThread.run(JcrInstaller.java:322)
> {code}
>  * now stop launchpad instance
>  * start again and check the previously created logger for JcrInstaller
>  * throws following exception:
> {code:java}
> 02.02.2018 15:35:01.210 *INFO* [pool-9-thread-1] org.apache.sling.installer.provider.jcr.impl.JcrInstaller Activating Apache Sling JCR Installer
> 02.02.2018 15:35:01.211 *ERROR* [pool-9-thread-1] org.apache.sling.installer.provider.jcr.impl.JcrInstaller Repository exception during startup - deactivating installer!
> javax.jcr.LoginException: Cannot derive user name for bundle org.apache.sling.installer.provider.jcr [123] and sub service null
> 	at org.apache.sling.jcr.base.AbstractSlingRepository2.loginService(AbstractSlingRepository2.java:311)
> 	at org.apache.sling.installer.provider.jcr.impl.JcrInstaller$StoppableThread.<init>(JcrInstaller.java:217)
> 	at org.apache.sling.installer.provider.jcr.impl.JcrInstaller.start(JcrInstaller.java:355)
> 	at org.apache.sling.installer.provider.jcr.impl.JcrInstaller.activate(JcrInstaller.java:342)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)
> 	at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)
> 	at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)
> 	at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)
> 	at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302)
> 	at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294)
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298)
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109)
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906)
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879)
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:347)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:247)
> 	at org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:350)
> 	at org.apache.felix.framework.Felix.getService(Felix.java:3721)
> 	at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:470)
> 	at org.apache.sling.commons.osgi.SortingServiceTracker.addingService(SortingServiceTracker.java:79)
> 	at org.apache.sling.installer.core.impl.SortingServiceTracker.addingService(SortingServiceTracker.java:45)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
> 	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> 	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
> 	at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
> 	at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
> 	at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
> 	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4579)
> 	at org.apache.felix.framework.Felix.registerService(Felix.java:3571)
> 	at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:887)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:874)
> 	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:132)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:941)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:741)
> 	at org.apache.felix.scr.impl.manager.ExtendedServiceEvent.activateManagers(ExtendedServiceEvent.java:59)
> 	at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:144)
> 	at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
> 	at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
> 	at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
> 	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4579)
> 	at org.apache.felix.framework.Felix.access$000(Felix.java:105)
> 	at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:419)
> 	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:170)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:144)
> 	at org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.executeServiceRegistrations(ServiceUserMapperImpl.java:315)
> 	at org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.access$000(ServiceUserMapperImpl.java:60)
> 	at org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl$1.run(ServiceUserMapperImpl.java:295)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)