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)