You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Andreas Sewe (Jira)" <ji...@apache.org> on 2020/01/09 12:30:00 UTC

[jira] [Created] (NETBEANS-3679) NetBeans plugin classloader does not work with multi-release JARs

Andreas Sewe created NETBEANS-3679:
--------------------------------------

             Summary: NetBeans plugin classloader does not work with multi-release JARs
                 Key: NETBEANS-3679
                 URL: https://issues.apache.org/jira/browse/NETBEANS-3679
             Project: NetBeans
          Issue Type: Bug
          Components: core
    Affects Versions: 11.2
            Reporter: Andreas Sewe


I have a plugin which uses Apache Log4J 2, which has the following (nice) API to request a {{Logger}} from the {{LogManager}}:
{code:java}
private static final Logger LOGGER = LogManager.getLogger();
{code}
Unfortunately, running NetBeans 11.2 on Java 13 causes the plugin to fail, with an {{ExceptionInInitializerError}}:
{noformat}
Caused by: java.lang.UnsupportedOperationException: No class provided, and an appropriate one cannot be found.
at org.apache.logging.log4j.LogManager.callerClass(LogManager.java:555)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:580)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567)
{noformat}
AFAICT, the reason is the same as for a [similar bug I recently reported in IntelliJ|https://youtrack.jetbrains.com/issue/IDEA-220300]: NetBeans plugin classloader cannot handle multi-release JARs as per [JEP 238|https://openjdk.java.net/jeps/238], which is exactly what Log4J's {{StackLocatorUtil.getCallerClass}} needs to work on both Java 8 and 9 or newer (a more detailed analysis in the IntelliJ bug).

The effect of this limitation is that your NetBeans plugins cannot depend on *any* multi-release JARs like Log4J.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists