Hi,

Thanks! I was expecting something like this. You just want to check the class 
name in an assertion - that’s fine.

Kind regards,
Uwe

P.S.: You could improve the assertion with the Type class, so it would also 
fail on otherwise broken descriptor strings (missing "L" or missing ";"):

    static boolean checkClassName(String cn) {
       Type tp = Type.getType(cn);
       // additional sanity so only valid "L;" descriptors work
       if (tp.getSort() != Type.OBJECT) {
         return false;
       }
       try {
           Class<?> c = Class.forName(tp.getClassName(), false, null);
           return true;
       } catch (ClassNotFoundException e) {
           return false;
       }
   }

-----
Uwe Schindler
uschind...@apache.org 
ASF Member, Apache Lucene PMC / Committer
Bremen, Germany
http://lucene.apache.org/


> -----Original Message-----
> From: core-libs-dev [mailto:core-libs-dev-boun...@openjdk.java.net] On
> Behalf Of Paul Sandoz
> Sent: Thursday, February 18, 2016 3:05 PM
> Cc: Java Core Libs <core-libs-dev@openjdk.java.net>
> Subject: Re: RFR 8144931: Assert class signatures are correct and refer to 
> valid
> classes
> 
> Hi Uwe
> 
> Not a stupid question.
> 
> We took the conservative approach to preserve the existing costs (avoid
> linkage and string generation).
> 
> Paul.
> 
> > On 18 Feb 2016, at 14:54, Uwe Schindler <uschind...@apache.org> wrote:
> >
> > Hi,
> >
> > just a stupid question from somebody outside the OpenJDK developers:
> > You are already using ASM to generate the class files. Why not also use the
> Type class in ASM to generate the signatures of a class constant?:
> >
> > Instead of:
> >
> > static final String  LF_HIDDEN_SIG =
> className("Ljava/lang/invoke/LambdaForm$Hidden;");
> >
> > Use the following to define the constant:
> >
> > import jdk.internal.org.objectweb.asm.Type;
> > import java.lang.invoke.LambdaForm.Hidden;
> > static final String  LF_HIDDEN_SIG = Type.getDescriptor(Hidden.class);
> >
> > This is compile-time checked, because of the .class notation.
> >
> > Thanks,
> > Uwe
> >
> > -----
> > Uwe Schindler
> > uschind...@apache.org
> > ASF Member, Apache Lucene PMC / Committer
> > Bremen, Germany
> > http://lucene.apache.org/
> >
> >> -----Original Message-----
> >> From: core-libs-dev [mailto:core-libs-dev-boun...@openjdk.java.net] On
> >> Behalf Of shilpi.rast...@oracle.com
> >> Sent: Thursday, February 18, 2016 12:18 PM
> >> To: Vladimir Ivanov <vladimir.x.iva...@oracle.com>; core-libs-
> >> d...@openjdk.java.net
> >> Subject: Re: RFR 8144931: Assert class signatures are correct and refer to
> valid
> >> classes
> >>
> >> Thank You Vladimir!
> >>
> >> I have done the changes. Please review the updated patch-
> >>
> >> http://cr.openjdk.java.net/~srastogi/8144931/webrev.02/
> >>
> >> Regards,
> >> Shilpi
> >>
> >> On 2/18/2016 1:58 PM, Vladimir Ivanov wrote:
> >>> Shilpi,
> >>>
> >>> _CLASS suffix looks redundant and you can abbreviate LAMBDA_FORM
> to
> >> LF:
> >>>  LF_HIDDEN_SIG
> >>>  LF_COMPILED_SIG
> >>>  FORCEINLINE_SIG
> >>>  DONTINLINE_SIG
> >>>
> >>> Otherwise, looks fine.
> >>>
> >>> Best regards,
> >>> Vladimir Ivanov
> >>>
> >>> On 2/17/16 5:47 PM, shilpi rastogi wrote:
> >>>> Hi All,
> >>>>
> >>>> Please review fix for the following bug-
> >>>>
> >>>> https://bugs.openjdk.java.net/browse/JDK-8144931
> >>>> http://cr.openjdk.java.net/~srastogi/8144931/webrev.01/
> >>>>
> >>>>
> >>>> Thanks,
> >>>> Shilpi
> >

Reply via email to