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
