[
https://issues.apache.org/jira/browse/SLING-12977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Munteanu updated SLING-12977:
------------------------------------
Issue Type: Bug (was: Task)
> 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: Bug
> 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)