[ https://issues.apache.org/jira/browse/OPENJPA-2800?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Struberg resolved OPENJPA-2800. ------------------------------------ Resolution: Fixed > 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 > Assignee: Mark Struberg > Priority: Minor > Fix For: 3.1.3 > > 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)