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

Robert Munteanu updated SLING-12977:
------------------------------------
    Fix Version/s: Feature Model Launcher 1.3.6

> OSGI configuration with empty key name fails instance startup
> -------------------------------------------------------------
>
>                 Key: SLING-12977
>                 URL: https://issues.apache.org/jira/browse/SLING-12977
>             Project: Sling
>          Issue Type: Task
>          Components: Feature Model
>    Affects Versions: Feature Model Launcher 1.3.2
>            Reporter: Joerg Hoh
>            Priority: Major
>             Fix For: Feature Model Launcher 1.3.6
>
>
> When an OSGI config with an empty property name is provided, the feature 
> launcher throws this exception:
> {noformat}
> ERROR: Bundle org.apache.felix.framework [0] EventDispatcher: Error during 
> dispatch. (java.lang.RuntimeException: 
> java.lang.reflect.InvocationTargetException)
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
>         at 
> org.apache.sling.feature.launcher.impl.launchers.AbstractRunner$1.addingService(AbstractRunner.java:164)
>         at 
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:944)
>         at 
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:872)
>         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:904)
>         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:4863)
>         at org.apache.felix.framework.Felix.registerService(Felix.java:3834)
>         at 
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328)
>         at 
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:335)
>         at 
> org.apache.felix.cm.impl.Activator.registerMemoryPersistenceManager(Activator.java:209)
>         at org.apache.felix.cm.impl.Activator.start(Activator.java:108)
>         at 
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:849)
>         at org.apache.felix.framework.Felix.activateBundle(Felix.java:2429)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2335)
>         at 
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
>         at 
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:297)
>         at java.base/java.lang.Thread.run(Thread.java:1583)
> Caused by: java.lang.reflect.InvocationTargetException
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>         at 
> org.apache.sling.feature.launcher.impl.launchers.AbstractRunner$1.addingService(AbstractRunner.java:149)
>         ... 20 more
> Caused by: java.lang.IllegalArgumentException: Key [] must not be an empty 
> string
>         at 
> org.apache.felix.cm.impl.CaseInsensitiveDictionary.checkKey(CaseInsensitiveDictionary.java:269)
>         at 
> org.apache.felix.cm.impl.CaseInsensitiveDictionary.<init>(CaseInsensitiveDictionary.java:73)
>         at 
> org.apache.felix.cm.impl.persistence.MemoryPersistenceManager.cache(MemoryPersistenceManager.java:101)
>         at 
> org.apache.felix.cm.impl.persistence.MemoryPersistenceManager.store(MemoryPersistenceManager.java:130)
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         ... 22 more
> {noformat}
> And in the case of AEM the instance failed to start properly. 
> Request:
> * catch (and rethrow) that exception and provide more context for which 
> configuration PID this failed.
> * potentially handle that exception, log it, but then also continue the 
> startup. Debatable, if this is the right choice in this case.
> (We should also extend the model analyser to catch such a situation.)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to