Hi Alexander,
That would be great...I'm trying to reproduce it in a separate project, but
(of course) it seems to be working fine in that..:-)
It's definitely the plugin, as the non-woven bytecode looks correct.
Here's the POM config.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version>
<configuration>
<Xset>
<generateStackMaps>true</generateStackMaps>
</Xset>
<showWeaveInfo>true</showWeaveInfo>
<complianceLevel>1.7</complianceLevel>
<source>1.7</source>
<Xlintfile>${project.parent.basedir}/xlint.properties</Xlintfile>
<aspectLibraries>
<aspectLibrary>
<groupId>${project.groupId}</groupId>
<artifactId>adm-aspects</artifactId>
</aspectLibrary>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
<aspectLibrary>
<groupId>org.perf4j</groupId>
<artifactId>perf4j-log4jonly</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.0.10</version>
</dependency>
</dependencies>
</plugin>
On Fri, May 8, 2015 at 5:09 PM, Alexander Kriegisch <
[email protected]> wrote:
> 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
>
_______________________________________________
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