You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Joerg Hoh (Jira)" <ji...@apache.org> on 2025/10/24 07:25:00 UTC
[jira] [Created] (SLING-12977) OSGI configuration with empty key name fails instance startup
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)