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)

Reply via email to