[
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)