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