Alexandre Roman created FELIX-5904: -------------------------------------- Summary: SCR is creating a logger instance using name "null" Key: FELIX-5904 URL: https://issues.apache.org/jira/browse/FELIX-5904 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-2.1.4 Reporter: Alexandre Roman
When using LogService 1.2 from OSGi r7 together with SCR 2.1.4, the following error happens: {{org.osgi.framework.BundleException: Activator start error in bundle org.apache.felix.scr [8].}} {{ at org.apache.felix.framework.Felix.activateBundle(Felix.java:2448)}} {{ at org.apache.felix.framework.Felix.startBundle(Felix.java:2304)}} {{ at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1535)}} {{ at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)}} {{ at java.lang.Thread.run(Thread.java:748)}} {{Caused by: java.lang.NullPointerException}} {{ at org.apache.felix.log.RootLoggerContextImpl.getEffectiveLogLevel(RootLoggerContextImpl.java:53)}} {{ at org.apache.felix.log.LoggerContextImpl.getEffectiveLogLevel(LoggerContextImpl.java:70)}} {{ at org.apache.felix.log.LoggerImpl.isErrorEnabled(LoggerImpl.java:216)}} {{ at org.apache.felix.scr.impl.logger.R7LogServiceLogger.isLogEnabled(R7LogServiceLogger.java:48)}} {{ at org.apache.felix.scr.impl.logger.AbstractLogger.isLogEnabled(AbstractLogger.java:72)}} {{ at org.apache.felix.scr.impl.logger.AbstractLogger.log(AbstractLogger.java:110)}} {{ at org.apache.felix.scr.impl.Activator.restart(Activator.java:143)}} {{ at org.apache.felix.scr.impl.config.ScrConfigurationImpl.configure(ScrConfigurationImpl.java:213)}} {{ at org.apache.felix.scr.impl.config.ScrConfigurationImpl.start(ScrConfigurationImpl.java:118)}} {{ at org.apache.felix.scr.impl.Activator.start(Activator.java:100)}} {{ at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)}} {{ at org.apache.felix.framework.Felix.activateBundle(Felix.java:2398)}} {{ ... 4 more}} It looks like SCR is trying to create a Logger instance through LoggerFactory with name=null. Specs from OSGi r7 do not clearly specify what happens when the logger name is null. The LogService implementation from Felix does not check whether the value is null or not. I think this behaviour is normal: one should not expect a method to work normally if nothing in the documentation say anything about nullability. The Logger instance is created from R7LogServiceLogger, which is created by LogServiceSupport#getLogger. This instance is internally used by the bundle. I think a default logger name should be set for this internal logger. -- This message was sent by Atlassian JIRA (v7.6.3#76005)