Joerg Hoh created SLING-12977:
---------------------------------

             Summary: 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



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