groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul King (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-8495) GroovyObject method implementations are marked with ACC_SYNTHETIC
Date Wed, 19 Sep 2018 12:41:00 GMT

    [ https://issues.apache.org/jira/browse/GROOVY-8495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16620525#comment-16620525
] 

Paul King commented on GROOVY-8495:
-----------------------------------

HEADSUP: I am likely to reopen this issue and defer for one more minor version. The current
fix added @Internal and removed synthetic all in one go. This forces other libraries/tools
which sneak into the more private areas of the language like Spock and possibly others to
have to upgrade immediately. Instead I plan to keep the @Internal annotation as per the current
solution but leave the methods as synthetic for at least one more version. This gives us times
to get all the libraries/tools updated. I am also testing a few other libraries. I'll also
write an email to the dev mailing list summarising this once I finish more testing.

> GroovyObject method implementations are marked with ACC_SYNTHETIC
> -----------------------------------------------------------------
>
>                 Key: GROOVY-8495
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8495
>             Project: Groovy
>          Issue Type: Bug
>          Components: bytecode, class generator, Compiler
>            Reporter: Daniil Ovchinnikov
>            Assignee: Paul King
>            Priority: Critical
>             Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> {code}
> class GroovyClass {}
> {code}
> {noformat:title=javap -v (stripped)}
> ...
> public class com.example.groovylib.GroovyClass implements groovy.lang.GroovyObject
>   flags: ACC_PUBLIC, ACC_SUPER
> ...
> {
>   public static transient boolean __$stMC;
>     descriptor: Z
>     flags: ACC_PUBLIC, ACC_STATIC, ACC_TRANSIENT, ACC_SYNTHETIC
>   public com.example.groovylib.GroovyClass();
>     descriptor: ()V
>     flags: ACC_PUBLIC
>   protected groovy.lang.MetaClass $getStaticMetaClass();
>     descriptor: ()Lgroovy/lang/MetaClass;
>     flags: ACC_PROTECTED, ACC_SYNTHETIC
>   public groovy.lang.MetaClass getMetaClass();
>     descriptor: ()Lgroovy/lang/MetaClass;
>     flags: ACC_PUBLIC, ACC_SYNTHETIC
>   public void setMetaClass(groovy.lang.MetaClass);
>     descriptor: (Lgroovy/lang/MetaClass;)V
>     flags: ACC_PUBLIC, ACC_SYNTHETIC
>     
>   public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
>     descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
>     flags: ACC_PUBLIC, ACC_SYNTHETIC
>     
>   public java.lang.Object getProperty(java.lang.String);
>     descriptor: (Ljava/lang/String;)Ljava/lang/Object;
>     flags: ACC_PUBLIC, ACC_SYNTHETIC
>   public void setProperty(java.lang.String, java.lang.Object);
>     descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
>     flags: ACC_PUBLIC, ACC_SYNTHETIC
> }
> SourceFile: "GroovyClass.groovy"
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message