You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Boris Heithecker (Jira)" <ji...@apache.org> on 2019/10/23 06:14:00 UTC

[jira] [Issue Comment Deleted] (NETBEANS-3234) Apache NetBeans running on JDK 11 cannot access package classes

     [ https://issues.apache.org/jira/browse/NETBEANS-3234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Boris Heithecker updated NETBEANS-3234:
---------------------------------------
    Comment: was deleted

(was: Are your sure your solution passes with the fix and does not without it?

I've tried it and changed my test case according to your suggestion. If I comment out the ProxyClassLoader.findClass(String name) override, the test still passes, regardless if run with java 8 or 11.0.4.

(I did some digging in the existing sources before as well, and, though I may not have been thorough enough, it seems to me that you can't easily create a unit test for this fix. You'd have have to change more code in ProxyClassLoader only for the sake of testing.))

> Apache NetBeans running on JDK 11 cannot access package classes
> ---------------------------------------------------------------
>
>                 Key: NETBEANS-3234
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-3234
>             Project: NetBeans
>          Issue Type: Bug
>    Affects Versions: 11.1
>            Reporter: Boris Heithecker
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 11.3
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> If a package-info element is defined in some package, it cannot be properly accessed at runtime:  
>  
> java.lang.Package p = AnyClass.class.getPackage();
>  
> should return a package object representing the actual package-info element of that package. It is, for example, used by the JAXB runtime to read XmlSchema annotations at package level. 
>  
> This has been tested in oracle jdk11.0.4. Class java.lang.Package in Java 11 has a private field called "packageInfo" of type "Class<?>", which should hold a reference to the actual package-info class object, i.e. AnyPackage.package-info. In NetBeans, always wrongly references "java.lang.Package$1PackageInfoProxy", which is a fallback reference set if no actual package-info could be found. 
>  
> The reason is most likely that neither 
>  
> org.netbeans.JarClassLoader
> nor org.netbeans.ProxyClassLoader
> nor org.netbeans.StandardModule$OneModuleClassLoader (all in platform/o.n.bootstrap)
>  
> override method "java.lang.ClassLoader.findClass(String name)". The default implementation throws an exceptions which causes the above fallback reference to be set. 
>  
> This is a serious issue. If it is not fixed, the platform will not be fully comptabile, among others, with the JAXB RI and also JAX-WS RI. 



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