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

Songqq commented on LOG4J2-2266:
--------------------------------

[[email protected]]  I initialize  the log4j2 as code below.  In 
brief,I'am initialize the LoggerContextFactory in CustomClassloader by 
Reflection. The code will cause NoClassDefFoundError  on version 2.11.1.
{quote}{{private Object initCoreLoggerContext(ClassLoader customloader) throws 
Exception {}}
{{  }}

{{  Class<?> logManagerClazz =      
loader.loadClass("org.apache.logging.log4j.LogManager");}}
{{  Method getFactoryMethod = logManagerClazz.getDeclaredMethod("getFactory", 
(Class<?>[]) null);}}
{{  Object factory = invokeRelectMethod(getFactoryMethod, null);}}
{{ }}}
{quote}
 

 As I change the ContextClassLoader the  Exception is gone .Everything is  
going to be  OK. I don't konw why .

 
{quote}{{private Object initCoreLoggerContext(ClassLoader customloader) throws 
Exception {}}
{{  ClassLoader beforeLoader = Thread.currentThread().getContextClassLoader();}}
{{  Thread.currentThread().setContextClassLoader(customloader);}}

{{  Class<?> logManagerClazz =      
loader.loadClass("org.apache.logging.log4j.LogManager");}}
{{  Method getFactoryMethod = logManagerClazz.getDeclaredMethod("getFactory", 
(Class<?>[]) null);}}
{{  Object factory = invokeRelectMethod(getFactoryMethod, null);}}

{{  Thread.currentThread().setContextClassLoader(beforeLoader);}}
{{}}}
{quote}

> Log4j2 throws NoClassDefFoundError in Java 8
> --------------------------------------------
>
>                 Key: LOG4J2-2266
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2266
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.10.0
>            Reporter: Andrejus Chaliapinas
>            Priority: Major
>
> During Unit Tests run using JDK 8 and Log4j2 v2.10.0 - getting this as part 
> of exception stack:
>  
> java.lang.NoClassDefFoundError: Could not initialize class 
>  org.apache.logging.log4j.util.PropertiesUtil
>      at 
> org.apache.logging.log4j.status.StatusLogger.<clinit>(StatusLogger.java:71)
>      at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:60)
>  
> and issue seems to be somehow related to what is reported so far against JDK 
> 9 here: LOG4J2-2129.
>  
> If some patch on top of v2.10.0 is available to test - please let me know 
> where to download it from.
>  
> While running same UTs with same JDK 8 and v2.8.2 - issue is not observed.
>  
> And question which I have here - why not introduce JDK8 compatibility runtime 
> mode while things with JDK9 are not yet that stable? So it could continue use 
> same logic as of v2.8.2 around that ServiceLoader and not cause side effects.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to