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 "Nikita Koval (JIRA)" <ji...@apache.org> on 2014/09/17 13:48:33 UTC

[jira] [Created] (LOG4J2-834) NoClassDefFoundError in ThrowableProxy

Nikita Koval created LOG4J2-834:
-----------------------------------

             Summary: NoClassDefFoundError in ThrowableProxy
                 Key: LOG4J2-834
                 URL: https://issues.apache.org/jira/browse/LOG4J2-834
             Project: Log4j 2
          Issue Type: Bug
            Reporter: Nikita Koval


In method *loadClass* we expect {{ClassNotFoundException}}. But if class comes from another java machine we can get {{NoClassDefFoundError}}.

Possible fix:
{code:java}
private Class<?> loadClass(final ClassLoader lastLoader, final String className) {
       // XXX: this is overly complicated
       Class<?> clazz;
       if (lastLoader != null) {
           try {
               clazz = Loader.initializeClass(className, lastLoader);
               if (clazz != null) {
                   return clazz;
               }
           } catch (final Throwable ignore) {
               // Ignore exception.
           }
       }
       try {
           clazz = Loader.loadClass(className);
       } catch (final ClassNotFoundException | LinkageError ignored) {
           try {
               clazz = Loader.initializeClass(className, this.getClass().getClassLoader());
           } catch (final ClassNotFoundException | LinkageError ignore) {
               return null;
           }
       }
       return clazz;
   }
{code}



--
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