I use the AspectJ Maven Plugin regularly. Maybe I can see something in your 
configuration if you post the Relevant part of your POM. I am quite busy these 
days, but maybe I can take a look during the weekend if Andy has not solved the 
problem by then anyway.

Regards
-- 
Alexander Kriegisch
http://scrum-master.de


> Am 08.05.2015 um 17:28 schrieb Tim Webster <[email protected]>:
> 
> Andy,
> 
> It seems to be only happening when using the Maven AspectJ plugin.  With Ant 
> (IAJC), the bridge method is marked as synthetic.
> 
> So I'll explore that avenue....
> 
>> On Fri, May 8, 2015 at 4:19 PM, Tim Webster <[email protected]> wrote:
>> 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
_______________________________________________
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