Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Is this duplication expected, or something i'm doing?

When I javap on all of my classes that are weaved by eclipselink, i see the same method called three times in a row (see below for javap):

As in the getter (a synthetic method) _persistence_checkFetched

and the setter (my getter) getGlobalFlagValue:()Ljava/lang/String;

Obviously, i am calling the getter once.

I am using static weaving, in an ant task called from maven

    <target name="weave">
        <java classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeave"
            classpathref="maven.runtime.classpath" fork="true">
            <arg line="-loglevel FINE -persistenceinfo src/main/resources target/classes target/classes" />
        </java>
    </target>


Here's the JavaP

public java.lang.String getGlobalFlagValue();
  Code:
   Stack=2, Locals=1, Args_size=1
   0:    aload_0
   1:    ldc    #138; //String globalFlagValue
   3:    invokevirtual    #87; //Method _persistence_checkFetched:(Ljava/lang/String;)V
   6:    aload_0
   7:    ldc    #138; //String globalFlagValue
   9:    invokevirtual    #87; //Method _persistence_checkFetched:(Ljava/lang/String;)V
   12:    aload_0
   13:    ldc    #138; //String globalFlagValue
   15:    invokevirtual    #87; //Method _persistence_checkFetched:(Ljava/lang/String;)V
   18:    aload_0
   19:    invokevirtual    #140; //Method getGlobalFlag:()Ljava/lang/Boolean;
   22:    ifnull    38
   25:    aload_0
   26:    invokevirtual    #140; //Method getGlobalFlag:()Ljava/lang/Boolean;
   29:    invokevirtual    #95; //Method java/lang/Boolean.booleanValue:()Z
   32:    ifeq    38
   35:    ldc    #97; //String Y
   37:    areturn
   38:    ldc    #99; //String N
   40:    areturn
  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   6      35      0    this       Lcom/primavera/pr/model/User;

  LineNumberTable:
   line 120: 6
   line 122: 35
   line 126: 38

  RuntimeVisibleAnnotations: length = 0xF
   00 02 01 FFFFFF94 00 00 01 FFFFFF8C 00 01 01 FFFFFF8D 73 01 FFFFFF9B

public void setGlobalFlagValue(java.lang.String);
  Code:
   Stack=4, Locals=3, Args_size=2
   0:    aload_0
   1:    invokevirtual    #143; //Method getGlobalFlagValue:()Ljava/lang/String;
   4:    astore_2
   5:    aload_0
   6:    invokevirtual    #143; //Method getGlobalFlagValue:()Ljava/lang/String;
   9:    astore_2
   10:    aload_0
   11:    invokevirtual    #143; //Method getGlobalFlagValue:()Ljava/lang/String;
   14:    astore_2
   15:    aload_0
   16:    ldc    #97; //String Y
   18:    aload_1
   19:    invokevirtual    #108; //Method java/lang/String.equals:(Ljava/lang/Object;)Z
   22:    invokestatic    #112; //Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
   25:    putfield    #135; //Field globalFlag:Ljava/lang/Boolean;
   28:    aload_0
   29:    ldc    #138; //String globalFlagValue
   31:    aload_2
   32:    aload_1
   33:    invokevirtual    #116; //Method _persistence_propertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
   36:    return
  LocalVariableTable:
   Start  Length  Slot  Name   Signature
   5      32      0    this       Lcom/primavera/pr/model/User;
   5      32      1    globalFlag       Ljava/lang/String;

  LineNumberTable:
   line 132: 5
   line 133: 28

Back to the top