Tom Watson created FELIX-6281:
---------------------------------

             Summary: Potential class space issues for getLogger(Bundle ...)
                 Key: FELIX-6281
                 URL: https://issues.apache.org/jira/browse/FELIX-6281
             Project: Felix
          Issue Type: Improvement
          Components: Log Service
    Affects Versions: log-1.2.2
            Reporter: Tom Watson


The method org.osgi.service.log.LoggerFactory.getLogger(Bundle, String, 
Class<L>) can get a cast exception on the return from 
org.apache.felix.log.LogServiceImpl.getLogService(Bundle) if the specified 
bundle is wired to another version of the org.osgi.service.log package and 
there is another LogService registered using that version of the package.

 

There are a few other issues with the approach of using the specified bundle's 
context.
 * The bundle may not have a valid BundleContext if it is not 
STARTING/STOPPING/ACTIVE
 * If there is no LogService registered with the other package then there will 
be no available ServiceReference
 * The state check for RESOLVED || ACTIVE is problematic because it omits 
STARTING/STOPPING but it also lets it try to get a context for a RESOLVED 
bundle which will cause an NPE
 
Instead the method should allow you to get a logger as long as the bundle is 
not UNINSTALLED in my opinion.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to