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 "CEM DAYANIK (JIRA)" <ji...@apache.org> on 2015/04/06 11:57:12 UTC

[jira] [Commented] (LOG4J2-834) ThrowableProxy throws NoClassDefFoundError

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

CEM DAYANIK commented on LOG4J2-834:
------------------------------------

Cant open a new issue, dont know why.

Still an issue in 2.2

log4j2 classes tries to load classes which makes "static" blocks to run.

Out pattern is the following:
[%d] [%-5p] [%t] [%c] - %m%n

How can we avoid this one for now?

According to docs, there is not any info there related to "location info"?

Or is there?


> ThrowableProxy throws NoClassDefFoundError
> ------------------------------------------
>
>                 Key: LOG4J2-834
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-834
>             Project: Log4j 2
>          Issue Type: Bug
>            Reporter: Nikita Koval
>            Assignee: Gary Gregory
>             Fix For: 2.2
>
>         Attachments: 0001-LOG4J2-834-Ignores-NoClassDefFoundError-and-other-Th.patch, ForceNoDefClassFoundError.java, InexistentInterface.java
>
>
> 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