[ 
https://issues.apache.org/jira/browse/GROOVY-8284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King closed GROOVY-8284.
-----------------------------

> getMetaClass should be annotated as (JavaBeans) transient
> ---------------------------------------------------------
>
>                 Key: GROOVY-8284
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8284
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.4.12
>            Reporter: Michael Lipp
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 4.0.0-alpha-1, 3.0.6
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> All groovy classes have the "getMetaClass()" method. This breaks the (e.g. 
> XML) serialization of groovy classes that are supposed to represent JavaBeans.
> While the serialization provided with Serializable or Externalizable examines 
> the attributes of a class, the special JavaBeans serialization provided by 
> serializers based on 
> [Encoders](https://docs.oracle.com/javase/8/docs/api/java/beans/Encoder.html) 
> relies on the information provided by the 
> [Introspector](https://docs.oracle.com/javase/8/docs/api/java/beans/Introspector.html).
>  
> With respect to persistence, the PropertyDescriptor for "getMetaClass" should 
> have the attribute value "transient" set. The Introspector generates this 
> value if the method has been annotated as 
> [Transient](https://docs.oracle.com/javase/8/docs/api/java/beans/Transient.html)).
>  Because this value is currently missing, the Encoder tries to serialize the 
> MetaClass information, which fails.
> The groovy compiler should therefore annotate the "getMetaClass" method with 
> the runtime annotation "java.beans.Transient".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to