Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-16 Thread Vladimir Ivanov
ov" <vladimir.x.iva...@oracle.com> À: "shilpi rastogi" <shilpi.rast...@oracle.com> Cc: core-libs-dev@openjdk.java.net Envoyé: Vendredi 13 Mai 2016 15:41:33 Objet: Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass() MethodHandle vamh = p

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-15 Thread shilpi.rast...@oracle.com
null, null); my 2 cents, Rémi - Mail original - De: "Vladimir Ivanov" <vladimir.x.iva...@oracle.com> À: "shilpi rastogi" <shilpi.rast...@oracle.com> Cc: core-libs-dev@openjdk.java.net Envoyé: Vendredi 13 Mai 2016 15:41:33 Objet: Re: RFR

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread Vladimir Ivanov
;vladimir.x.iva...@oracle.com> À: "shilpi rastogi" <shilpi.rast...@oracle.com> Cc: core-libs-dev@openjdk.java.net Envoyé: Vendredi 13 Mai 2016 15:41:33 Objet: Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass() MethodHandle vamh = prepareForInvo

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread Remi Forax
dHandle;[Ljava/lang/Object;)Ljava/lang/Object;", null, null); my 2 cents, Rémi - Mail original - > De: "Vladimir Ivanov" <vladimir.x.iva...@oracle.com> > À: "shilpi rastogi" <shilpi.rast...@oracle.com> > Cc: core-libs-dev

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread Vladimir Ivanov
MethodHandle vamh = prepareForInvoker(MH_checkCallerClass); Object ok = bccInvoker.invokeExact(vamh, new Object[]{hostClass, bcc}); + assert Boolean.TRUE.equals(ok) : ok; What I meant is to convert the whole test (inside try-catch block) into an assert. +

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread Paul Sandoz
> On 13 May 2016, at 10:56, shilpi.rast...@oracle.com wrote: > > Thanks Paul! > > Please review http://cr.openjdk.java.net/~srastogi/8149574/webrev10.0/ > +1 Paul.

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread shilpi.rast...@oracle.com
Thanks Paul! Please review http://cr.openjdk.java.net/~srastogi/8149574/webrev10.0/ Regards, Shilpi On 5/13/2016 2:09 PM, Paul Sandoz wrote: assert Boolean.TRUE.equals(ok) : ok;

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread Paul Sandoz
> On 13 May 2016, at 09:13, shilpi.rast...@oracle.com wrote: > > Thank you Vladimir for comments. > > Please review updated webrev > http://cr.openjdk.java.net/~srastogi/8149574/webrev.09/ > Just one minor comment (last one i promise!): 1140 MethodHandle vamh =

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-13 Thread shilpi.rast...@oracle.com
Thank you Vladimir for comments. Please review updated webrev http://cr.openjdk.java.net/~srastogi/8149574/webrev.09/ Regards, Shilpi On 5/12/2016 6:12 PM, Vladimir Ivanov wrote: rankly speaking, I'd prefer [2] to be co

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread Paul Sandoz
> On 12 May 2016, at 14:24, Sundararajan Athijegannathan > wrote: > > Hi Paul: > > On default package: with the new rule a VM anonymous class has to be > either [1] in the same package as that of the host class or [2] in the > unnamed package. Yes.

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread Vladimir Ivanov
Overall, looks really good! I like how it shapes out. A couple of nitpicks: (1) Please, use more meaningful names: INJECTED_INVOKER_TEMPLATE vs T_BYTES, invokerTemplateGenerator vs tBytesGenerator, InjectedInvoker vs T. (2) There's no need in a constructor. The invoker is never

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread Sundararajan Athijegannathan
Hi Paul: On default package: with the new rule a VM anonymous class has to be either [1] in the same package as that of the host class or [2] in the unnamed package. MethodHandleImpl's T class was earlier in java.lang.invoke package. So we can either fix it [1] to match the package of the host

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread shilpi.rast...@oracle.com
Thank You Paul for comments. Please review updated webrev http://cr.openjdk.java.net/~srastogi/8149574/webrev.08/ Regards, Shilpi On 5/12/2016 3:41 PM, Paul Sandoz wrote: On 11 May 2016, at 18:31, shilpi.rast...@oracle.com wrote: Hi All, Please review the updated webrev-

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread Paul Sandoz
> On 11 May 2016, at 18:31, shilpi.rast...@oracle.com wrote: > > Hi All, > > Please review the updated webrev- > http://cr.openjdk.java.net/~srastogi/8149574/webrev.07/ > 1219 FieldVisitor fv; 1220 MethodVisitor mv; 1221 AnnotationVisitor av0; Field “fv

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-12 Thread Michael Haupt
... yes. Best, Michael > Am 12.05.2016 um 06:44 schrieb Sundararajan Athijegannathan > : > > +1 > > -Sundar > > > On 5/11/2016 10:01 PM, shilpi.rast...@oracle.com wrote: >> Hi All, >> >> Please review the updated webrev- >>

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Sundararajan Athijegannathan
+1 -Sundar On 5/11/2016 10:01 PM, shilpi.rast...@oracle.com wrote: > Hi All, > > Please review the updated webrev- > http://cr.openjdk.java.net/~srastogi/8149574/webrev.07/ > > Changed the anonymous class package with no package name. > > Regards, > Shilpi > > On 5/11/2016 8:22 PM, Paul Sandoz

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread shilpi.rast...@oracle.com
Hi All, Please review the updated webrev- http://cr.openjdk.java.net/~srastogi/8149574/webrev.07/ Changed the anonymous class package with no package name. Regards, Shilpi On 5/11/2016 8:22 PM, Paul Sandoz wrote: Hi Shilpi, What makes me slightly queasy about the constant pool patching of

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Rémi Forax
t;john.r.r...@oracle.com>, "Michael Haupt" <michael.ha...@oracle.com>, >>> "paul sandoz" <paul.san...@oracle.com>, "Da Vinci Machine Project" ><mlvm-...@openjdk.java.net> >>> Envoyé: Mercredi 11 Mai 2016 14:50:25 >>> Objet: Re:

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Paul Sandoz
Hi Shilpi, What makes me slightly queasy about the constant pool patching of T is it’s quite fragile and it produces a class with a slightly inconsistent state regarding the InnerClasses structures. It’s probably mostly harmless but still bothers me. One solution is to combine ASM with

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Michael Haupt
Hi Shilpi, thank you for preparing these patches. They both implement solution (A), which is to patch the package name. As it happens, most of the complexity in the solutions is due to the desire to make the solution tidy in terms of association of the anonymous class with the host class'

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Vladimir Ivanov
racle.com> Cc: core-libs-dev@openjdk.java.net, "John Rose" <john.r.r...@oracle.com>, "Michael Haupt" <michael.ha...@oracle.com>, "paul sandoz" <paul.san...@oracle.com>, "Da Vinci Machine Project" <mlvm-...@openjdk.

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread forax
.r...@oracle.com>, > "Michael Haupt" <michael.ha...@oracle.com>, > "paul sandoz" <paul.san...@oracle.com>, "Da Vinci Machine Project" > <mlvm-...@openjdk.java.net> > Envoyé: Mercredi 11 Mai 2016 14:50:25 > Objet: Re: RFR[9]:Fix j

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Vladimir Ivanov
; <vladimir.x.iva...@oracle.com> Envoyé: Mercredi 11 Mai 2016 13:24:09 Objet: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass() Hi All, Please review the following- https://bugs.openjdk.java.net/browse/JDK-8149574 Solution: Changed anonymous class p

Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread Remi Forax
acle.com>, > "Michael Haupt" <michael.ha...@oracle.com>, > "paul sandoz" <paul.san...@oracle.com>, "Vladimir Ivanov" > <vladimir.x.iva...@oracle.com> > Envoyé: Mercredi 11 Mai 2016 13:24:09 > Objet: RFR[9]:Fix java/lang/inv

RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of Unsafe.defineAnonymousClass()

2016-05-11 Thread shilpi.rast...@oracle.com
Hi All, Please review the following- https://bugs.openjdk.java.net/browse/JDK-8149574 Solution: Changed anonymous class package name with the package name of its host class. Two approaches to solve this- 1. Parse .class and get the class name index form constant pool and patch it with new