Konrad Windszus created FELIX-6704:
--------------------------------------

             Summary: Improve error logging for exceptions thrown from 
Configuration Plugins in ConfigurationManager
                 Key: FELIX-6704
                 URL: https://issues.apache.org/jira/browse/FELIX-6704
             Project: Felix
          Issue Type: Improvement
          Components: Configuration Admin
    Affects Versions: configadmin-1.9.24
            Reporter: Konrad Windszus


Currently all throwables are caught in 
https://github.com/apache/felix-dev/blob/517f9a0c89cad1866f315255568b40c568f5239d/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java#L932
 and logged. 
The important factory or configuration PID is not emitted in the log message 
though.

Example:

{code}
07.05.2024 20:41:33.820 *ERROR* [FelixLogListener] 
LogService.org.apache.felix.configadmin Service 
[org.apache.felix.cm.ConfigurationAdmin,47, 
[org.osgi.service.cm.ConfigurationAdmin]] Unexpected problem calling 
configuration plugin [org.osgi.service.cm.ConfigurationPlugin, id=41, 
bundle=38/slinginstall:org.apache.felix.configadmin.plugin.interpolation-1.2.6.jar]
 (org.apache.felix.log.LogException: 
org.osgi.util.converter.ConversionException: Cannot convert TO BE PROVIDED to 
class java.lang.Integer)
org.apache.felix.log.LogException: org.osgi.util.converter.ConversionException: 
Cannot convert TO BE PROVIDED to class java.lang.Integer
        at org.osgi.util.converter.ConvertingImpl.to(ConvertingImpl.java:243)
        at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:183)
        at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:151)
        at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:141)
        at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.convertType(InterpolationConfigurationPlugin.java:308)
        at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.lambda$replace$0(InterpolationConfigurationPlugin.java:197)
        at 
org.apache.felix.configadmin.plugin.interpolation.Interpolator.replace(Interpolator.java:149)
        at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.replace(InterpolationConfigurationPlugin.java:179)
        at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.getNewValue(InterpolationConfigurationPlugin.java:171)
        at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.modifyConfiguration(InterpolationConfigurationPlugin.java:133)
        at 
org.apache.felix.cm.impl.ConfigurationManager.callPlugins(ConfigurationManager.java:928)
 [org.apache.felix.configadmin:1.9.24]
        at 
org.apache.felix.cm.impl.ConfigurationAdapter.getProcessedProperties(ConfigurationAdapter.java:293)
 [org.apache.felix.configadmin:1.9.24]
        at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.getConfigurationInfo(RegionConfigurationSupport.java:532)
 [org.apache.felix.scr:2.2.4]
        at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configurationEvent(RegionConfigurationSupport.java:333)
 [org.apache.felix.scr:2.2.4]
        at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport$2.configurationEvent(RegionConfigurationSupport.java:115)
 [org.apache.felix.scr:2.2.4]
        at 
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:1721)
 [org.apache.felix.configadmin:1.9.24]
        at 
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:1662)
 [org.apache.felix.configadmin:1.9.24]
        at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:122) 
[org.apache.felix.configadmin:1.9.24]
        at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:84) 
[org.apache.felix.configadmin:1.9.24]
        at java.base/java.lang.Thread.run(Thread.java:829)
{code}

For debugging purposes the configuration PID is the most crucial bit of 
information and this is missing from this log message.



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

Reply via email to