So if I'm not taken completely wrong, the reason is that
neither org.netbeans.JarClassLoader nor org.netbeans.ProxyClassLoader nor
org.netbeans.StandardModule$OneModuleClassLoader (all in
platform/o.n.bootstrap) override "protected Class<?> findClass(String name)
throws ClassNotFoundException" in java.lang.ClassLoader. Therefore, package
classes aren't loaded.
Boris


On Sat, 12 Oct 2019 at 10:27, Boris Heithecker <boris.heithec...@gmx.net>
wrote:

> I got a little closer to the problem now.
> So, take this line and debug it a) in plain Java 11, and b) in this
> NetBeans platform (any version but running on JDK 11):
>
> java.lang.Package p = Main.class.getPackage();
>
> Class java.lang.Package in Java 11 differs in many aspects from Java 8. In
> Java 11, it has a private field called "packageInfo" of type "Class<?>",
> which in cases
>
> a) (the working case) is a reference to the actual package-info class
> object, i.e. MyPackage.package-info
>
> b) always references "java.lang.Package$1PackageInfoProxy", i.e. the
> java.lang.Package class object (and therefore NOT the class object
> resulting from the compilation of e.g. MyPackage.package-info.java as it
> would be supposed).
>
> This is a bug. It's most likely a NetBeans classloader issue.
>
> Boris
>
> On Sat, 12 Oct 2019 at 09:44, Boris Heithecker <boris.heithec...@gmx.net>
> wrote:
>
>> It's definitely not a JDK problem. The code works fine in a non-platform
>> application with jdk11.0.4. It's a problem of the combination JDK 11 plus
>> NetBeans Platform. It fails even if I switch to JDK 11 and NetBeans 8.2.
>> Boris
>>
>> Geertjan Wielenga <geert...@apache.org> schrieb am Sa., 12. Okt. 2019,
>> 09:14:
>>
>>> So first start by using the same JDK for both to see whether it is a JDK
>>> problem (probably since JDK 11 is very different to JDK 8) or not.
>>>
>>> Gj
>>>
>>> On Sat, 12 Oct 2019 at 08:50, Boris Heithecker <boris.heithec...@gmx.net>
>>> wrote:
>>>
>>>> Hi all,
>>>> it seems that a NetBeans 11.1 platform app running on Java 11 (oracle
>>>> jdk11.0.4) doesn't read annotations at package level properly. If I'm
>>>> not
>>>> mistaken for whatever reason this is a really nasty bug.
>>>>
>>>> Please have a look at this to reproduce:
>>>>
>>>> https://github.com/borisheithecker/packagelevelannotationtest
>>>>
>>>> If I run this small platform application with platform 11.1 and Java 11
>>>> selected, it fails (i.e. the package annotation is not found at
>>>> runtime).
>>>> If I run it with NetBeans 8.2 and Java 8_162 the annotation is found as
>>>> expected.
>>>>
>>>> I started porting a platform application yesterday which has been run on
>>>> 8.2 so far and which makes heavy use of JAXB and Web Services. I spend
>>>> the
>>>> whole day digging various sources on why the application fails to run on
>>>> Java 11 (with Metro JAX WS RI added as external library) until I found
>>>> out
>>>> what seems to be the obvious reason now: it fails because JAXB can't
>>>> read @XmlSchema-annotations in package-info. Am I doing something wrong?
>>>>
>>>> Boris
>>>>
>>>
>
> --
> Boris Heithecker
>
>
> Dr. Boris Heithecker
> Lüneburger Str. 30
> 28870 Ottersberg
> Festnetz: +49 4205 315834
> Mobil: +49 170 6137015
>


-- 
Boris Heithecker


Dr. Boris Heithecker
Lüneburger Str. 30
28870 Ottersberg
Festnetz: +49 4205 315834
Mobil: +49 170 6137015

Reply via email to