You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Matt Sicker (JIRA)" <ji...@apache.org> on 2016/07/19 00:13:20 UTC

[jira] [Comment Edited] (LOG4J2-1467) OSGi: Missing import package

    [ https://issues.apache.org/jira/browse/LOG4J2-1467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15383349#comment-15383349 ] 

Matt Sicker edited comment on LOG4J2-1467 at 7/19/16 12:13 AM:
---------------------------------------------------------------

This issue might be fixable without screwing around with OSGi package imports. Ideally, log4j-api shouldn't need to import anything from other bundles because the BundleActivator uses other bundles' ClassLoaders to load a log4j provider. This may be a case where using the TCCL is incorrect, however. I'd like to try and take a closer look at the code path that causes this bug.

Edit: using the TCCL may still be needed, but setting the TCCL and unsetting it afterward is a typical hack used in these types of scenarios.


was (Author: jvz):
This issue might be fixable without screwing around with OSGi package imports. Ideally, log4j-api shouldn't need to import anything from other bundles because the BundleActivator uses other bundles' ClassLoaders to load a log4j provider. This may be a case where using the TCCL is incorrect, however. I'd like to try and take a closer look at the code path that causes this bug.

> OSGi: Missing import package
> ----------------------------
>
>                 Key: LOG4J2-1467
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1467
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 2.6.2
>         Environment: Enterprise OSGi application
>            Reporter: Ralf
>
> The Import-Package statement in log4j-api-2.6.2.jar is missing the package "org.apache.logging.log4j.core.lookup". This results in the following log output while starting a enterprise OSGi application:
> Blueprint Extender: 3 WARN JNDI lookup class is not available because this JRE does not support JNDI. JNDI string lookups will not be available, continuing configuration. java.lang.ClassNotFoundException: org.apache.logging.log4j.core.lookup.JndiLookup
>         at java.lang.Class.forName(Class.java:256)
>         at org.apache.logging.log4j.util.LoaderUtil.loadClass(LoaderUtil.java:122)
>         at org.apache.logging.log4j.util.LoaderUtil.newInstanceOf(LoaderUtil.java:141)
>         at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOf(LoaderUtil.java:168)
>         at org.apache.logging.log4j.core.util.Loader.newCheckedInstanceOf(Loader.java:301)
>         at org.apache.logging.log4j.core.lookup.Interpolator.<init>(Interpolator.java:95)
>         at org.apache.logging.log4j.core.config.AbstractConfiguration.<init>(AbstractConfiguration.java:116)
> and
> Blueprint Extender: 3 WARN JMX runtime input lookup class is not available because this JRE does not support JMX. JMX lookups will not be available, continuing configuration. java.lang.ClassNotFoundException: org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup
>    (Stacktrace like above)
> As local fix I added 'DynamicImport-Package: *' to the MANIFEST.MF. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org