Hi Andy,

Here is the output of javap -verbose.

I'll see if I can reproduce it on something other than our codebase that I
can share...

Classfile /D:/sonar/for_sonarsource/DocumentTypeId.class
  Last modified 08-May-2015; size 5512 bytes
  MD5 checksum c84da5d4a8a1f14b807d5a97bf38f0d8
  Compiled from "DocumentTypeId.java"
public class aquila.administrator.topic.domain.DocumentTypeId extends
aquila.administrator.topic.domain.TopicId
  SourceFile: "DocumentTypeId.java"
  RuntimeVisibleAnnotations:
    0: #98()
    org.aspectj.weaver.WeaverVersion: length = 0xC
     00 07 00 00 00 00 01 49 3E 40 B7 48
    org.aspectj.weaver.WeaverState: length = 0x434
     53 00 00 00 00 01 00 39 4C 61 71 75 69 6C 61 2F
     61 64 6D 69 6E 69 73 74 72 61 74 6F 72 2F 63 6F
     6D 6D 6F 6E 2F 61 73 70 65 63 74 73 2F 69 6D 70
     6C 2F 4A 61 76 61 42 65 61 6E 41 73 70 65 63 74
     3B 00 00 03 EF 00 63 00 00 05 F5 00 21 00 01 00
     03 00 00 00 03 00 1A 00 05 00 06 00 01 00 07 00
     00 00 02 00 08 00 04 00 0A 00 0B 00 00 00 19 00
     0C 00 0B 00 01 00 07 00 00 00 02 00 0D 00 08 00
     01 00 0E 00 0F 00 02 00 10 00 00 00 08 00 00 00
     21 00 00 03 22 00 11 00 00 00 33 00 01 00 01 00
     00 00 05 2A B7 00 12 B1 00 00 00 02 00 14 00 00
     00 0A 00 02 00 00 00 22 00 04 00 23 00 15 00 00
     00 0C 00 01 00 00 00 05 00 16 00 17 00 00 00 01
     00 0E 00 18 00 02 00 10 00 00 00 08 00 00 00 29
     00 00 03 FA 00 11 00 00 00 5C 00 03 00 04 00 00
     00 0C 2A 2B 2C B7 00 19 2A 2D B5 00 1C B1 00 00
     00 02 00 14 00 00 00 0E 00 03 00 00 00 2A 00 06
     00 2B 00 0B 00 2C 00 15 00 00 00 2A 00 04 00 00
     00 0C 00 16 00 17 00 00 00 00 00 0C 00 1E 00 0B
     00 01 00 00 00 0C 00 1F 00 0B 00 02 00 00 00 0C
     00 0A 00 0B 00 03 00 01 00 20 00 21 00 02 00 10
     00 00 00 08 00 00 00 32 00 00 05 21 00 11 00 00
     00 2F 00 01 00 01 00 00 00 05 2A B4 00 1C B0 00
     00 00 02 00 14 00 00 00 06 00 01 00 00 00 33 00
     15 00 00 00 0C 00 01 00 00 00 05 00 16 00 17 00
     00 00 01 00 22 00 23 00 02 00 10 00 00 00 08 00
     00 00 3A 00 00 05 CE 00 11 00 00 00 3E 00 02 00
     02 00 00 00 06 2A 2B B5 00 1C B1 00 00 00 02 00
     14 00 00 00 0A 00 02 00 00 00 3B 00 05 00 3C 00
     15 00 00 00 16 00 02 00 00 00 06 00 16 00 17 00
     00 00 00 00 06 00 0A 00 0B 00 01 00 01 00 24 00
     25 00 02 00 10 00 00 00 08 00 00 00 44 00 00 06
     D3 00 11 00 00 00 92 00 02 00 02 00 00 00 32 2A
     2B A6 00 05 04 AC 2B C1 00 01 9A 00 05 03 AC 2A
     B4 00 1C C7 00 05 03 AC 2A B4 00 1C 2B C0 00 01
     B4 00 1C B6 00 26 9A 00 05 03 AC 2A 2B B7 00 2A
     AC 00 00 00 03 00 14 00 00 00 26 00 09 00 00 00
     45 00 05 00 46 00 07 00 48 00 0E 00 49 00 10 00
     4B 00 17 00 4C 00 19 00 4E 00 2A 00 4F 00 2C 00
     51 00 15 00 00 00 16 00 02 00 00 00 32 00 16 00
     17 00 00 00 00 00 32 00 2B 00 2C 00 01 00 2D 00
     00 00 06 00 04 07 08 08 12 00 01 00 2E 00 2F 00
     02 00 10 00 00 00 08 00 00 00 59 00 00 08 ED 00
     11 00 00 00 73 00 03 00 02 00 00 00 2F BB 00 30
     59 2A B6 00 32 B8 00 35 B7 00 39 12 3B B6 00 3D
     2A B6 00 41 B6 00 3D 12 3B B6 00 3D 2A B6 00 44
     B6 00 3D B6 00 46 4C 2B B6 00 49 AC 00 00 00 02
     00 14 00 00 00 16 00 05 00 00 00 5B 00 0E 00 5C
     00 1A 00 5D 00 26 00 5B 00 2A 00 5F 00 15 00 00
     00 16 00 02 00 00 00 2F 00 16 00 17 00 00 00 2A
     00 05 00 4B 00 0B 00 01 00 02 00 4C 00 4D 00 02
     00 10 00 00 00 08 00 00 00 6F 00 00 0D 42 00 11
     00 00 00 40 00 02 00 02 00 00 00 0C 2A B4 00 1C
     2B B6 00 44 B8 00 4E AC 00 00 00 02 00 14 00 00
     00 06 00 01 00 00 00 70 00 15 00 00 00 16 00 02
     00 00 00 0C 00 16 00 17 00 00 00 00 00 0C 00 54
     00 17 00 01 00 01 00 55 00 56 00 02 00 10 00 00
     00 08 00 00 00 78 00 00 0E 69 00 11 00 00 00 7E
     00 02 00 04 00 00 00 17 2B C0 00 01 4E 2A 2B B7
     00 57 3D 1C 9A 00 09 2A 2D B7 00 59 3D 1C AC 00
     00 00 03 00 14 00 00 00 16 00 05 00 00 00 7A 00
     05 00 7C 00 0B 00 7D 00 0F 00 7E 00 15 00 81 00
     15 00 00 00 2A 00 04 00 00 00 17 00 16 00 17 00
     00 00 00 00 17 00 5B 00 5C 00 01 00 0B 00 0C 00
     5D 00 5E 00 02 00 05 00 12 00 54 00 17 00 03 00
     2D 00 00 00 09 00 01 FD 00 15 01 07 00 01 00 02
     00 5F 00 00 00 02 00 60 00 61 00 00 00 06 00 01
     00 62 00 00
  minor version: 0
  major version: 51
  flags: ACC_PUBLIC, ACC_SUPER

Constant pool:
    #1 = Class              #2            //
 aquila/administrator/topic/domain/DocumentTypeId
    #2 = Utf8               aquila/administrator/topic/domain/DocumentTypeId
    #3 = Class              #4            //
 aquila/administrator/topic/domain/TopicId
    #4 = Utf8               aquila/administrator/topic/domain/TopicId
    #5 = Utf8               serialVersionUID
    #6 = Utf8               J
    #7 = Utf8               ConstantValue
    #8 = Long               1l
   #10 = Utf8               documentType
   #11 = Utf8               Ljava/lang/String;
   #12 = Utf8               PROPERTYNAME_DOCUMENTTYPE
   #13 = String             #10           //  documentType
   #14 = Utf8               <init>
   #15 = Utf8               ()V
   #16 = Utf8               org.aspectj.weaver.MethodDeclarationLineNumber
   #17 = Utf8               Code
   #18 = Methodref          #3.#19        //
 aquila/administrator/topic/domain/TopicId."<init>":()V
   #19 = NameAndType        #14:#15       //  "<init>":()V
   #20 = Utf8               LineNumberTable
   #21 = Utf8               LocalVariableTable
   #22 = Utf8               this
   #23 = Utf8
Laquila/administrator/topic/domain/DocumentTypeId;
   #24 = Utf8
(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
   #25 = Methodref          #3.#26        //
 
aquila/administrator/topic/domain/TopicId."<init>":(Ljava/lang/String;Ljava/lang/String;)V
   #26 = NameAndType        #14:#27       //
 "<init>":(Ljava/lang/String;Ljava/lang/String;)V
   #27 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V
   #28 = Fieldref           #1.#29        //
 
aquila/administrator/topic/domain/DocumentTypeId.documentType:Ljava/lang/String;
   #29 = NameAndType        #10:#11       //
 documentType:Ljava/lang/String;
   #30 = Utf8               businessGroup
   #31 = Utf8               topicCode
   #32 = Utf8               getDocumentType
   #33 = Utf8               ()Ljava/lang/String;
   #34 = Utf8               setDocumentType
   #35 = Utf8               (Ljava/lang/String;)V
   #36 = Utf8               equals
   #37 = Utf8               (Ljava/lang/Object;)Z
   #38 = Methodref          #39.#41       //
 java/lang/String.equals:(Ljava/lang/Object;)Z
   #39 = Class              #40           //  java/lang/String
   #40 = Utf8               java/lang/String
   #41 = NameAndType        #36:#37       //  equals:(Ljava/lang/Object;)Z
   #42 = Methodref          #3.#41        //
 aquila/administrator/topic/domain/TopicId.equals:(Ljava/lang/Object;)Z
   #43 = Utf8               obj
   #44 = Utf8               Ljava/lang/Object;
   #45 = Utf8               StackMapTable
   #46 = Utf8               hashCode
   #47 = Utf8               ()I
   #48 = Class              #49           //  java/lang/StringBuilder
   #49 = Utf8               java/lang/StringBuilder
   #50 = Methodref          #1.#51        //
 
aquila/administrator/topic/domain/DocumentTypeId.getBusinessGroup:()Ljava/lang/String;
   #51 = NameAndType        #52:#33       //
 getBusinessGroup:()Ljava/lang/String;
   #52 = Utf8               getBusinessGroup
   #53 = Methodref          #39.#54       //
 java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
   #54 = NameAndType        #55:#56       //
 valueOf:(Ljava/lang/Object;)Ljava/lang/String;
   #55 = Utf8               valueOf
   #56 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;
   #57 = Methodref          #48.#58       //
 java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
   #58 = NameAndType        #14:#35       //  "<init>":(Ljava/lang/String;)V
   #59 = String             #60           //  *
   #60 = Utf8               *
   #61 = Methodref          #48.#62       //
 java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   #62 = NameAndType        #63:#64       //
 append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   #63 = Utf8               append
   #64 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;
   #65 = Methodref          #1.#66        //
 
aquila/administrator/topic/domain/DocumentTypeId.getTopicCode:()Ljava/lang/String;
   #66 = NameAndType        #67:#33       //
 getTopicCode:()Ljava/lang/String;
   #67 = Utf8               getTopicCode
   #68 = Methodref          #1.#69        //
 
aquila/administrator/topic/domain/DocumentTypeId.getDocumentType:()Ljava/lang/String;
   #69 = NameAndType        #32:#33       //
 getDocumentType:()Ljava/lang/String;
   #70 = Methodref          #48.#71       //
 java/lang/StringBuilder.toString:()Ljava/lang/String;
   #71 = NameAndType        #72:#33       //  toString:()Ljava/lang/String;
   #72 = Utf8               toString
   #73 = Methodref          #39.#74       //  java/lang/String.hashCode:()I
   #74 = NameAndType        #46:#47       //  hashCode:()I
   #75 = Utf8               hashString
   #76 = Utf8               doCompareTo
   #77 = Utf8
(Laquila/administrator/topic/domain/DocumentTypeId;)I
   #78 = Methodref          #79.#81       //
 
aquila/administrator/common/utils/ObjectUtilities.doCompareObject:(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
   #79 = Class              #80           //
 aquila/administrator/common/utils/ObjectUtilities
   #80 = Utf8
aquila/administrator/common/utils/ObjectUtilities
   #81 = NameAndType        #82:#83       //
 doCompareObject:(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
   #82 = Utf8               doCompareObject
   #83 = Utf8               (Ljava/lang/Comparable;Ljava/lang/Comparable;)I
   #84 = Utf8               documentTypeId
   #85 = Utf8               compareTo
   #86 = Utf8               (Laquila/administrator/topic/domain/TopicId;)I
   #87 = Methodref          #3.#88        //
 
aquila/administrator/topic/domain/TopicId.compareTo:(Laquila/administrator/topic/domain/TopicId;)I
   #88 = NameAndType        #85:#86       //
 compareTo:(Laquila/administrator/topic/domain/TopicId;)I
   #89 = Methodref          #1.#90        //
 
aquila/administrator/topic/domain/DocumentTypeId.doCompareTo:(Laquila/administrator/topic/domain/DocumentTypeId;)I
   #90 = NameAndType        #76:#77       //
 doCompareTo:(Laquila/administrator/topic/domain/DocumentTypeId;)I
   #91 = Utf8               topicId
   #92 = Utf8               Laquila/administrator/topic/domain/TopicId;
   #93 = Utf8               result
   #94 = Utf8               I
   #95 = Utf8               SourceFile
   #96 = Utf8               DocumentTypeId.java
   #97 = Utf8               RuntimeVisibleAnnotations
   #98 = Utf8               Laquila/administrator/common/aspects/Observable;
   #99 = Utf8               Synthetic
  #100 = Utf8               ajc$tjp_0
  #101 = Utf8               Lorg/aspectj/lang/JoinPoint$StaticPart;
  #102 = NameAndType        #100:#101     //
 ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
  #103 = Fieldref           #1.#102       //
 
aquila/administrator/topic/domain/DocumentTypeId.ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
  #104 = Utf8               makeJP
  #105 = Utf8
(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
  #106 = NameAndType        #104:#105     //
 
makeJP:(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
  #107 = Utf8               org/aspectj/runtime/reflect/Factory
  #108 = Class              #107          //
 org/aspectj/runtime/reflect/Factory
  #109 = Methodref          #108.#106     //
 
org/aspectj/runtime/reflect/Factory.makeJP:(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
  #110 = Utf8               setDocumentType_aroundBody0
  #111 = Utf8
(Laquila/administrator/topic/domain/DocumentTypeId;Ljava/lang/String;Lorg/aspectj/lang/JoinPoint;)V
  #112 = Utf8               ajc$this
  #113 = Utf8               java/lang/Object
  #114 = Class              #113          //  java/lang/Object
  #115 = Utf8
aquila/administrator/topic/domain/DocumentTypeId$AjcClosure1
  #116 = Class              #115          //
 aquila/administrator/topic/domain/DocumentTypeId$AjcClosure1
  #117 = Utf8               ([Ljava/lang/Object;)V
  #118 = NameAndType        #14:#117      //
 "<init>":([Ljava/lang/Object;)V
  #119 = Methodref          #116.#118     //
 
aquila/administrator/topic/domain/DocumentTypeId$AjcClosure1."<init>":([Ljava/lang/Object;)V
  #120 = Integer            69649
  #121 = Utf8               linkClosureAndJoinPoint
  #122 = Utf8               (I)Lorg/aspectj/lang/ProceedingJoinPoint;
  #123 = NameAndType        #121:#122     //
 linkClosureAndJoinPoint:(I)Lorg/aspectj/lang/ProceedingJoinPoint;
  #124 = Utf8               org/aspectj/runtime/internal/AroundClosure
  #125 = Class              #124          //
 org/aspectj/runtime/internal/AroundClosure
  #126 = Methodref          #125.#123     //
 
org/aspectj/runtime/internal/AroundClosure.linkClosureAndJoinPoint:(I)Lorg/aspectj/lang/ProceedingJoinPoint;
  #127 = Utf8               aspectOf
  #128 = Utf8
()Laquila/administrator/common/aspects/impl/JavaBeanAspect;
  #129 = NameAndType        #127:#128     //
 aspectOf:()Laquila/administrator/common/aspects/impl/JavaBeanAspect;
  #130 = Utf8
aquila/administrator/common/aspects/impl/JavaBeanAspect
  #131 = Class              #130          //
 aquila/administrator/common/aspects/impl/JavaBeanAspect
  #132 = Methodref          #131.#129     //
 
aquila/administrator/common/aspects/impl/JavaBeanAspect.aspectOf:()Laquila/administrator/common/aspects/impl/JavaBeanAspect;
  #133 = Utf8               setterCalled
  #134 = Utf8
(Lorg/aspectj/lang/ProceedingJoinPoint;Laquila/administrator/common/aspects/JavaBean;)V
  #135 = NameAndType        #133:#134     //
 
setterCalled:(Lorg/aspectj/lang/ProceedingJoinPoint;Laquila/administrator/common/aspects/JavaBean;)V
  #136 = Methodref          #131.#135     //
 
aquila/administrator/common/aspects/impl/JavaBeanAspect.setterCalled:(Lorg/aspectj/lang/ProceedingJoinPoint;Laquila/administrator/common/aspects/JavaBean;)V
  #137 = Methodref          #1.#88        //
 
aquila/administrator/topic/domain/DocumentTypeId.compareTo:(Laquila/administrator/topic/domain/TopicId;)I
  #138 = Utf8               org.aspectj.weaver.WeaverVersion
  #139 = Utf8               org.aspectj.weaver.WeaverState
  #140 = String             #96           //  DocumentTypeId.java
  #141 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)V
  #142 = NameAndType        #14:#141      //
 "<init>":(Ljava/lang/String;Ljava/lang/Class;)V
  #143 = Methodref          #108.#142     //
 
org/aspectj/runtime/reflect/Factory."<init>":(Ljava/lang/String;Ljava/lang/Class;)V
  #144 = Utf8               method-execution
  #145 = String             #144          //  method-execution
  #146 = Utf8               1
  #147 = String             #146          //  1
  #148 = String             #34           //  setDocumentType
  #149 = Utf8               aquila.administrator.topic.domain.DocumentTypeId
  #150 = String             #149          //
 aquila.administrator.topic.domain.DocumentTypeId
  #151 = Utf8               java.lang.String
  #152 = String             #151          //  java.lang.String
  #153 = Utf8
  #154 = String             #153          //
  #155 = Utf8               void
  #156 = String             #155          //  void
  #157 = Utf8               makeMethodSig
  #158 = Utf8
(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
  #159 = NameAndType        #157:#158     //
 
makeMethodSig:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
  #160 = Methodref          #108.#159     //
 
org/aspectj/runtime/reflect/Factory.makeMethodSig:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
  #161 = Utf8               makeSJP
  #162 = Utf8
(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
  #163 = NameAndType        #161:#162     //
 
makeSJP:(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
  #164 = Methodref          #108.#163     //
 
org/aspectj/runtime/reflect/Factory.makeSJP:(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
  #165 = Utf8               ajc$preClinit
  #166 = NameAndType        #165:#15      //  ajc$preClinit:()V
  #167 = Methodref          #1.#166       //
 aquila/administrator/topic/domain/DocumentTypeId.ajc$preClinit:()V
  #168 = Utf8               <clinit>
  #169 = Utf8               (Ljava/lang/Object;)I
{
  protected java.lang.String documentType;
    flags: ACC_PROTECTED


  public static final java.lang.String PROPERTYNAME_DOCUMENTTYPE;
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL

    ConstantValue: String documentType

  public aquila.administrator.topic.domain.DocumentTypeId();
    flags: ACC_PUBLIC

    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #18                 // Method
aquila/administrator/topic/domain/TopicId."<init>":()V
         4: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0       5     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
      LineNumberTable:
        line 34: 0
        line 35: 4
      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 21 00 00 03 22

  public aquila.administrator.topic.domain.DocumentTypeId(java.lang.String,
java.lang.String, java.lang.String);
    flags: ACC_PUBLIC

    Code:
      stack=3, locals=4, args_size=4
         0: aload_0
         1: aload_1
         2: aload_2
         3: invokespecial #25                 // Method
aquila/administrator/topic/domain/TopicId."<init>":(Ljava/lang/String;Ljava/lang/String;)V
         6: aload_0
         7: aload_3
         8: putfield      #28                 // Field
documentType:Ljava/lang/String;
        11: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0      12     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
               0      12     1 businessGroup   Ljava/lang/String;
               0      12     2 topicCode   Ljava/lang/String;
               0      12     3 documentType   Ljava/lang/String;
      LineNumberTable:
        line 42: 0
        line 43: 6
        line 44: 11
      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 29 00 00 03 FA

  public java.lang.String getDocumentType();
    flags: ACC_PUBLIC

    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: getfield      #28                 // Field
documentType:Ljava/lang/String;
         4: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0       5     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
      LineNumberTable:
        line 51: 0
      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 32 00 00 05 21

  public void setDocumentType(java.lang.String);
    flags: ACC_PUBLIC

    Code:
      stack=4, locals=5, args_size=2
         0: aload_1
         1: astore_2
         2: getstatic     #103                // Field
ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
         5: aload_0
         6: aload_0
         7: aload_2
         8: invokestatic  #109                // Method
org/aspectj/runtime/reflect/Factory.makeJP:(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
        11: astore_3
        12: invokestatic  #132                // Method
aquila/administrator/common/aspects/impl/JavaBeanAspect.aspectOf:()Laquila/administrator/common/aspects/impl/JavaBeanAspect;
        15: iconst_3
        16: anewarray     #114                // class java/lang/Object
        19: astore        4
        21: aload         4
        23: iconst_0
        24: aload_0
        25: aastore
        26: aload         4
        28: iconst_1
        29: aload_2
        30: aastore
        31: aload         4
        33: iconst_2
        34: aload_3
        35: aastore
        36: new           #116                // class
aquila/administrator/topic/domain/DocumentTypeId$AjcClosure1
        39: dup
        40: aload         4
        42: invokespecial #119                // Method
aquila/administrator/topic/domain/DocumentTypeId$AjcClosure1."<init>":([Ljava/lang/Object;)V
        45: ldc           #120                // int 69649
        47: invokevirtual #126                // Method
org/aspectj/runtime/internal/AroundClosure.linkClosureAndJoinPoint:(I)Lorg/aspectj/lang/ProceedingJoinPoint;
        50: aload_0
        51: invokevirtual #136                // Method
aquila/administrator/common/aspects/impl/JavaBeanAspect.setterCalled:(Lorg/aspectj/lang/ProceedingJoinPoint;Laquila/administrator/common/aspects/JavaBean;)V
        54: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0      55     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
               0      55     1 documentType   Ljava/lang/String;
      LineNumberTable:
        line 58: 12
      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 3A 00 00 05 CE

  public boolean equals(java.lang.Object);
    flags: ACC_PUBLIC

    Code:
      stack=2, locals=2, args_size=2
         0: aload_0
         1: aload_1
         2: if_acmpne     7
         5: iconst_1
         6: ireturn
         7: aload_1
         8: instanceof    #1                  // class
aquila/administrator/topic/domain/DocumentTypeId
        11: ifne          16
        14: iconst_0
        15: ireturn
        16: aload_0
        17: getfield      #28                 // Field
documentType:Ljava/lang/String;
        20: ifnonnull     25
        23: iconst_0
        24: ireturn
        25: aload_0
        26: getfield      #28                 // Field
documentType:Ljava/lang/String;
        29: aload_1
        30: checkcast     #1                  // class
aquila/administrator/topic/domain/DocumentTypeId
        33: getfield      #28                 // Field
documentType:Ljava/lang/String;
        36: invokevirtual #38                 // Method
java/lang/String.equals:(Ljava/lang/Object;)Z
        39: ifne          44
        42: iconst_0
        43: ireturn
        44: aload_0
        45: aload_1
        46: invokespecial #42                 // Method
aquila/administrator/topic/domain/TopicId.equals:(Ljava/lang/Object;)Z
        49: ireturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0      50     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
               0      50     1   obj   Ljava/lang/Object;
      LineNumberTable:
        line 69: 0
        line 70: 5
        line 72: 7
        line 73: 14
        line 75: 16
        line 76: 23
        line 78: 25
        line 79: 42
        line 81: 44
      StackMapTable: number_of_entries = 4
           frame_type = 7 /* same */
           frame_type = 8 /* same */
           frame_type = 8 /* same */
           frame_type = 18 /* same */

      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 44 00 00 06 D3

  public int hashCode();
    flags: ACC_PUBLIC

    Code:
      stack=3, locals=2, args_size=1
         0: new           #48                 // class
java/lang/StringBuilder
         3: dup
         4: aload_0
         5: invokevirtual #50                 // Method
getBusinessGroup:()Ljava/lang/String;
         8: invokestatic  #53                 // Method
java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
        11: invokespecial #57                 // Method
java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
        14: ldc           #59                 // String *
        16: invokevirtual #61                 // Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: aload_0
        20: invokevirtual #65                 // Method
getTopicCode:()Ljava/lang/String;
        23: invokevirtual #61                 // Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: ldc           #59                 // String *
        28: invokevirtual #61                 // Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: aload_0
        32: invokevirtual #68                 // Method
getDocumentType:()Ljava/lang/String;
        35: invokevirtual #61                 // Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: invokevirtual #70                 // Method
java/lang/StringBuilder.toString:()Ljava/lang/String;
        41: astore_1
        42: aload_1
        43: invokevirtual #73                 // Method
java/lang/String.hashCode:()I
        46: ireturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0      47     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
              42       5     1 hashString   Ljava/lang/String;
      LineNumberTable:
        line 91: 0
        line 92: 14
        line 93: 26
        line 91: 38
        line 95: 42
      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 59 00 00 08 ED

  public int compareTo(aquila.administrator.topic.domain.TopicId);
    flags: ACC_PUBLIC

    Code:
      stack=2, locals=4, args_size=2
         0: aload_1
         1: checkcast     #1                  // class
aquila/administrator/topic/domain/DocumentTypeId
         4: astore_3
         5: aload_0
         6: aload_1
         7: invokespecial #87                 // Method
aquila/administrator/topic/domain/TopicId.compareTo:(Laquila/administrator/topic/domain/TopicId;)I
        10: istore_2
        11: iload_2
        12: ifne          21
        15: aload_0
        16: aload_3
        17: invokespecial #89                 // Method
doCompareTo:(Laquila/administrator/topic/domain/DocumentTypeId;)I
        20: istore_2
        21: iload_2
        22: ireturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0      23     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
               0      23     1 topicId
Laquila/administrator/topic/domain/TopicId;
              11      12     2 result   I
               5      18     3 documentTypeId
Laquila/administrator/topic/domain/DocumentTypeId;
      LineNumberTable:
        line 122: 0
        line 124: 5
        line 125: 11
        line 126: 15
        line 129: 21
      StackMapTable: number_of_entries = 1
           frame_type = 253 /* append */
             offset_delta = 21
        locals = [ int, class
aquila/administrator/topic/domain/DocumentTypeId ]

      org.aspectj.weaver.MethodDeclarationLineNumber: length = 0x8
       00 00 00 78 00 00 0E 69

  static {};
    flags: ACC_STATIC

    Code:
      stack=0, locals=0, args_size=0
         0: invokestatic  #167                // Method ajc$preClinit:()V
         3: return
      LineNumberTable:
        line 1: 0

  static final void
setDocumentType_aroundBody0(aquila.administrator.topic.domain.DocumentTypeId,
java.lang.String, org.aspectj.lang.JoinPoint);
    flags: ACC_STATIC, ACC_FINAL

    Code:
      stack=2, locals=3, args_size=3
         0: aload_0
         1: aload_1
         2: putfield      #28                 // Field
documentType:Ljava/lang/String;
         5: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0       6     0 ajc$this
Laquila/administrator/topic/domain/DocumentTypeId;
               0       6     1 documentType   Ljava/lang/String;
      LineNumberTable:
        line 59: 0
        line 60: 5
    Synthetic: true

  public int compareTo(java.lang.Object);
    flags: ACC_PUBLIC, ACC_BRIDGE, 0x200

    Code:
      stack=2, locals=2, args_size=2
         0: aload_0
         1: aload_1
         2: checkcast     #3                  // class
aquila/administrator/topic/domain/TopicId
         5: invokevirtual #137                // Method
compareTo:(Laquila/administrator/topic/domain/TopicId;)I
         8: ireturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0       9     0  this
Laquila/administrator/topic/domain/DocumentTypeId;
      LineNumberTable:
        line 1: 0
}


On Fri, May 8, 2015 at 4:07 PM, Andy Clement <[email protected]>
wrote:

> Modifiers are played with in a number of places, if you can create a bit
> of sample code that shows the problem I’m happy to look into it. I tried to
> create the problem but couldn’t.
>
> What does the javap -verbose output look like for the woven result (rather
> than the decompiler you are using).
>
> cheers,
> Andy
>
> On May 8, 2015, at 6:27 AM, Tim Webster <[email protected]> wrote:
>
>
> Hi,
>
> In our woven aspectJ code, it seems that bridge methods are being
> incorrectly marked as interfaces.
>
> for example, in the following (decompiled) class here is the non-woven
> compareTo() method:
>
>     public int compareTo(TopicId topicId)
>     {
>         DocumentTypeId documentTypeId = (DocumentTypeId)topicId;
>         int result = super.compareTo(topicId);
>         if(0 == result)
>             result = doCompareTo(documentTypeId);
>         return result;
>     }
>
>     public volatile int compareTo(Object x0)
>     {
>         return compareTo((TopicId)x0);
>     }
>
>
>
> *And here is the woven version:*
>
>
>     public int compareTo(TopicId topicId)
>     {
>         DocumentTypeId documentTypeId = (DocumentTypeId)topicId;
>         int result = super.compareTo(topicId);
>         if(result == 0)
>             result = doCompareTo(documentTypeId);
>         return result;
>     }
>
>    public volatile *interface* int compareTo(Object obj)
>     {
>         return compareTo((TopicId)obj);
>     }
>
>
> This is causing some static analysis tools to fail, so it's a problem.
>
> Does anyone have any idea where I can start with investigating why this
> would be happening?
>
> Thanks,
>
>
>
>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to