----- Mail original ----- > De: "harold seigel" <[email protected]> > À: "Remi Forax" <[email protected]> > Cc: "Alan Bateman" <[email protected]>, "Hotspot dev runtime" > <[email protected]>, > [email protected] > Envoyé: Vendredi 2 Septembre 2016 20:32:55 > Objet: Re: RFR 8058575: IllegalAccessError trying to access package-private > class from VM anonymous class
> Hi Rémi, > > Thank you for looking at this change. > > Not allowing host classes to be array classes is not completely > unrelated to this bug because it affects the implementation of the code > that prepends the host class's package to the anonymous class. yes, right. but i've always believed that the name was more for debugging purpose, i.e. because a VM anonymous class name is not registered in a Classloader, so the VM will never find an anonymous class by it's name. > > We decided to not allow array host classes in JDK-9 because it makes no > sense. A user who does this is likely doing so in error, and should be > flagged for it. yes, true. > > We recognize that this, and many other things, will have to change once > array classes have their own methods. > > Thanks, Harold Thanks for the explanation, Rémi > > > On 9/2/2016 11:25 AM, Remi Forax wrote: >> Harold, >> disallowing array classes as host classes seems unrelated and knowing that >> jdk >> 10 or 11 will certainly add default methods to arrays, >> we will want to have anonymous classes with arrays as host class in order to >> acts as bridges/mixins. >> >> regards, >> Rémi >> >> ----- Mail original ----- >>> De: "harold seigel" <[email protected]> >>> À: "Alan Bateman" <[email protected]>, "Hotspot dev runtime" >>> <[email protected]>, >>> [email protected] >>> Envoyé: Vendredi 2 Septembre 2016 17:03:34 >>> Objet: Re: RFR 8058575: IllegalAccessError trying to access package-private >>> class from VM anonymous class >>> Thanks Alan. I'll go ahead and make that change. >>> >>> Harold >>> >>> >>> On 9/2/2016 10:43 AM, Alan Bateman wrote: >>>> >>>> On 02/09/2016 14:02, harold seigel wrote: >>>>> Hi, >>>>> >>>>> Please review this new fix for JDK-8058575. This fix requires that a >>>>> VM anonymous class be in either the same package as its host class or >>>>> be in the unnamed package. If the anonymous class is in the unnamed >>>>> package then this fix puts it into its host class's package, ensuring >>>>> that the anonymous class and its host class are in the same module. >>>>> This fix also throws an IllegalArgumentException if the host class is >>>>> an array class. >>>>> >>>>> Additionally, the type of field ClassFileParser::_host_klass was >>>>> changed to InstanceKlass* and some comments were cleaned up. >>>>> >>>>> JBS bug: https://bugs.openjdk.java.net/browse/JDK-8058575 >>>>> >>>>> Open webrevs: >>>>> >>>>> http://cr.openjdk.java.net/~hseigel/bug_8058575.jdk.3/ >>>> In GetModuleTest then one clean-up is to change it to use >>>> hostClass.getPackageName() and remove packageName(String). >>>> > >>> -Alan
