openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Struberg (Jira)" <j...@apache.org>
Subject [jira] [Commented] (OPENJPA-2800) StateManager field in enhanced entities are not "synthetic"
Date Sun, 26 Apr 2020 15:52:00 GMT

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

Mark Struberg commented on OPENJPA-2800:
----------------------------------------

I'd go as far as setting it on by default in master. It's clearly more correct.

> StateManager field in enhanced entities are not "synthetic"
> -----------------------------------------------------------
>
>                 Key: OPENJPA-2800
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2800
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance
>    Affects Versions: 2.4.3
>            Reporter: Alexander Falb
>            Priority: Minor
>         Attachments: image-2020-01-15-08-12-02-066.png
>
>
> I'm using reflection to do various things on an entity-class during my unit tests. Because
my tests are not interested in any of OpenJPAs internals, I'm trying to skip any field generated
during enhancement. Basically I skip every field with where [Field#isSynthetic|https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#isSynthetic--]]
is true. The pcStateManager however does not have the flag ACC_SYNTHETIC set:
> {code:java}
> $ javap -verbose MyEntity.class
> [...]
>   protected transient org.apache.openjpa.enhance.StateManager pcStateManager;
>     descriptor: Lorg/apache/openjpa/enhance/StateManager;
>     flags: ACC_PROTECTED, ACC_TRANSIENT
> [...]
> {code}
> According to the [JVM Specs|https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.8]
> {quote}[...]A class member that does not appear in the source code must be marked using
a Synthetic attribute, or else it must have its ACC_SYNTHETIC flag set.[...]
> {quote}
> Is this flag intentionally not set?
>   



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

Mime
View raw message