Project: AspectJ
Bug 158624 Compiler Error: generics and arrays
Reported: 2006-09-25 14:18:53 | Status: resolved fixed

OK, not sure what to report here or what info you need, but here's the set up, message, and erroreous class. I don't understand the errors from the compiler enough to parse down the erroneous file to something that contains only the bug, but I could if direction were given. Here's my set up: Eclipse SDK Version: 3.2.0 Build id: M20060629-1905 With AJDT: Eclipse AspectJ Development Tools Version: 1.4.1.200608141223 AspectJ version: 1.5.3.200608210848 Here's the bug dump from the compiler inside Eclipse: java.lang.UnsupportedOperationException at org.aspectj.weaver.UnresolvedType.parameterize(UnresolvedType.java:221) at org.aspectj.weaver.ResolvedMemberImpl.parameterize(ResolvedMemberImpl.java:680) at org.aspectj.weaver.ResolvedMemberImpl.parameterize(ResolvedMemberImpl.java:690) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:643) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:597) at org.aspectj.weaver.ReferenceType.getDeclaredMethods(ReferenceType.java:508) at org.aspectj.weaver.ResolvedType$4.get(ResolvedType.java:226) at org.aspectj.weaver.Iterators$3$1.hasNext(Iterators.java:118) at org.aspectj.weaver.Iterators$5.hasNext(Iterators.java:171) at org.aspectj.weaver.Iterators$3.hasNext(Iterators.java:128) at org.aspectj.weaver.ResolvedType.lookupMember(ResolvedType.java:346) at org.aspectj.weaver.ResolvedType.lookupMethod(ResolvedType.java:327) at org.aspectj.weaver.World.resolve(World.java:523) at org.aspectj.weaver.MemberImpl.resolve(MemberImpl.java:93) at org.aspectj.weaver.JoinPointSignatureIterator.addSignaturesUpToFirstDefiningMember(JoinPointSignatureIterator.java:109) at org.aspectj.weaver.JoinPointSignatureIterator.<init>(JoinPointSignatureIterator.java:51) at org.aspectj.weaver.MemberImpl.getJoinPointSignatures(MemberImpl.java:943) at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:286) at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:75) at org.aspectj.weaver.Advice.match(Advice.java:112) at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:117) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2806) at org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction(BcelClassWeaver.java:2768) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2506) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2332) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:494) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:119) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1606) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1557) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1335) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1155) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:455) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving(AjPipeliningCompilerAdapter.java:392) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing(AjPipeliningCompilerAdapter.java:380) at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$after$org_aspectj_ajdt_internal_compiler_CompilerAdapter$5$6b855184(CompilerAdapter.aj:98) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:533) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:892) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:246) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:165) at org.aspectj.ajde.internal.CompilerAdapter.compile(CompilerAdapter.java:122) at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run(AspectJBuildManager.java:191) trouble in: public class com.wec.lib.util.test.SyncValueTest extends junit.framework.TestCase: private com.wec.lib.util.test.SyncValueTest$SyncInteger a private com.wec.lib.util.test.SyncValueTest$SyncInteger b private com.wec.lib.util.test.SyncValueTest$SyncInteger c private com.wec.lib.util.test.SyncValueTest$SyncInteger d private com.wec.lib.util.test.SyncValueTest$SyncInteger e public void <init>(): ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 17) INVOKESPECIAL junit.framework.TestCase.<init> ()V constructor-execution(void com.wec.lib.util.test.SyncValueTest.<init>()) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 27) | NEW com.wec.lib.util.test.SyncValueTest$SyncInteger | DUP | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | ICONST_1 | INVOKESPECIAL com.wec.lib.util.test.SyncValueTest$SyncInteger.<init> (Lcom/wec/lib/util/test/SyncValueTest;I)V | PUTFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 28) | NEW com.wec.lib.util.test.SyncValueTest$SyncInteger | DUP | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | ICONST_2 | INVOKESPECIAL com.wec.lib.util.test.SyncValueTest$SyncInteger.<init> (Lcom/wec/lib/util/test/SyncValueTest;I)V | PUTFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 29) | NEW com.wec.lib.util.test.SyncValueTest$SyncInteger | DUP | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | ICONST_3 | INVOKESPECIAL com.wec.lib.util.test.SyncValueTest$SyncInteger.<init> (Lcom/wec/lib/util/test/SyncValueTest;I)V | PUTFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 30) | NEW com.wec.lib.util.test.SyncValueTest$SyncInteger | DUP | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | ICONST_4 | INVOKESPECIAL com.wec.lib.util.test.SyncValueTest$SyncInteger.<init> (Lcom/wec/lib/util/test/SyncValueTest;I)V | PUTFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 31) | NEW com.wec.lib.util.test.SyncValueTest$SyncInteger | DUP | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | ICONST_5 | INVOKESPECIAL com.wec.lib.util.test.SyncValueTest$SyncInteger.<init> (Lcom/wec/lib/util/test/SyncValueTest;I)V | PUTFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | RETURN (line 17) constructor-execution(void com.wec.lib.util.test.SyncValueTest.<init>()) end public void <init>() public void testSyncValueGroup() org.aspectj.weaver.MethodDeclarationLineNumber: 39:1035 : method-execution(void com.wec.lib.util.test.SyncValueTest.testSyncValueGroup()) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 42) | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | ANEWARRAY com.wec.lib.util.SyncValueGroup | DUP | ICONST_0 | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | AASTORE | method-call(void com.wec.lib.util.test.SyncValueTest$SyncInteger.link(com.wec.lib.util.SyncValueGroup[])) | | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.link ([Lcom/wec/lib/util/SyncValueGroup;)V | method-call(void com.wec.lib.util.test.SyncValueTest$SyncInteger.link(com.wec.lib.util.SyncValueGroup[])) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 43) | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | IF_ACMPNE L0 | ICONST_1 | GOTO L1 | L0: ICONST_0 | L1: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_1 (line 44) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L2 | ICONST_1 | GOTO L3 | L2: ICONST_0 | L3: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 45) | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_2 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_2 (line 46) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L4 | ICONST_1 | GOTO L5 | L4: ICONST_0 | L5: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 47) | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | ANEWARRAY com.wec.lib.util.SyncValueGroup | DUP | ICONST_0 | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | AASTORE | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.link ([Lcom/wec/lib/util/SyncValueGroup;)V | ICONST_2 (line 48) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L6 | ICONST_1 | GOTO L7 | L6: ICONST_0 | L7: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 49) | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_3 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_3 (line 50) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L8 | ICONST_1 | GOTO L9 | L8: ICONST_0 | L9: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_3 (line 51) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L10 | ICONST_1 | GOTO L11 | L10: ICONST_0 | L11: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 52) | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_4 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_4 (line 53) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L12 | ICONST_1 | GOTO L13 | L12: ICONST_0 | L13: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_4 (line 54) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L14 | ICONST_1 | GOTO L15 | L14: ICONST_0 | L15: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 55) | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_1 (line 56) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L16 | ICONST_1 | GOTO L17 | L16: ICONST_0 | L17: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_1 (line 57) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L18 | ICONST_1 | GOTO L19 | L18: ICONST_0 | L19: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 59) | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | ANEWARRAY com.wec.lib.util.SyncValueGroup | DUP | ICONST_0 | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | AASTORE | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.link ([Lcom/wec/lib/util/SyncValueGroup;)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 60) | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | IF_ACMPNE L20 | ICONST_1 | GOTO L21 | L20: ICONST_0 | L21: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 63) | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | ANEWARRAY com.wec.lib.util.SyncValueGroup | DUP | ICONST_0 | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | AASTORE | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.link ([Lcom/wec/lib/util/SyncValueGroup;)V | ICONST_1 (line 64) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L22 | ICONST_1 | GOTO L23 | L22: ICONST_0 | L23: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_1 (line 65) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L24 | ICONST_1 | GOTO L25 | L24: ICONST_0 | L25: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 66) | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | BIPUSH 8 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | BIPUSH 8 (line 67) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L26 | ICONST_1 | GOTO L27 | L26: ICONST_0 | L27: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | BIPUSH 8 (line 68) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L28 | ICONST_1 | GOTO L29 | L28: ICONST_0 | L29: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | BIPUSH 8 (line 69) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L30 | ICONST_1 | GOTO L31 | L30: ICONST_0 | L31: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | BIPUSH 8 (line 70) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L32 | ICONST_1 | GOTO L33 | L32: ICONST_0 | L33: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | BIPUSH 8 (line 71) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L34 | ICONST_1 | GOTO L35 | L34: ICONST_0 | L35: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 74) | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.unlink ()V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 75) | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_3 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 76) | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_2 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_2 (line 77) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L36 | ICONST_1 | GOTO L37 | L36: ICONST_0 | L37: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_2 (line 78) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L38 | ICONST_1 | GOTO L39 | L38: ICONST_0 | L39: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_3 (line 79) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L40 | ICONST_1 | GOTO L41 | L40: ICONST_0 | L41: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_2 (line 80) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L42 | ICONST_1 | GOTO L43 | L42: ICONST_0 | L43: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_2 (line 81) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L44 | ICONST_1 | GOTO L45 | L44: ICONST_0 | L45: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 82) | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.unlink ()V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 83) | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | ANEWARRAY com.wec.lib.util.SyncValueGroup | DUP | ICONST_0 | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | AASTORE | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.link ([Lcom/wec/lib/util/SyncValueGroup;)V | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this (line 84) | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | ICONST_1 | INVOKESTATIC java.lang.Integer.valueOf (I)Ljava/lang/Integer; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.setValue (Ljava/lang/Object;)V | ICONST_1 (line 85) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.a Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L46 | ICONST_1 | GOTO L47 | L46: ICONST_0 | L47: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_1 (line 86) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.b Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L48 | ICONST_1 | GOTO L49 | L48: ICONST_0 | L49: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_3 (line 87) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.c Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L50 | ICONST_1 | GOTO L51 | L50: ICONST_0 | L51: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_3 (line 88) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.d Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L52 | ICONST_1 | GOTO L53 | L52: ICONST_0 | L53: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | ICONST_1 (line 89) | ALOAD_0 // Lcom/wec/lib/util/test/SyncValueTest; this | GETFIELD com.wec.lib.util.test.SyncValueTest.e Lcom/wec/lib/util/test/SyncValueTest$SyncInteger; | INVOKEVIRTUAL com.wec.lib.util.test.SyncValueTest$SyncInteger.getValue ()Ljava/lang/Object; | CHECKCAST java.lang.Integer | INVOKEVIRTUAL java.lang.Integer.intValue ()I | IF_ICMPNE L54 | ICONST_1 | GOTO L55 | L54: ICONST_0 | L55: INVOKESTATIC com.wec.lib.util.test.SyncValueTest.assertTrue (Z)V | RETURN (line 90) method-execution(void com.wec.lib.util.test.SyncValueTest.testSyncValueGroup()) end public void testSyncValueGroup() end public class com.wec.lib.util.test.SyncValueTest when weaving classes when weaving when batch building BuildConfig[D:\workspace\.metadata\.plugins\org.eclipse.ajdt.core\ANSER2.generated.lst] #Files=365 Here's the class: package com.wec.lib.util.test; import static com.wec.ide.Constants.UNCHECKED; import junit.framework.TestCase; import org.junit.Test; import com.wec.lib.util.SyncValueGroup; import com.wec.scrum.Tests; /** * This class tests the SyncValueGroup utility class. */ @Tests(classes = { SyncValueGroup.class }) @SuppressWarnings("nls") public class SyncValueTest extends TestCase { class SyncInteger extends SyncValueGroup<Integer> { public SyncInteger(int val) { super(new Integer(val)); } public void valueChanged() { } } private SyncInteger a = new SyncInteger(1); private SyncInteger b = new SyncInteger(2); private SyncInteger c = new SyncInteger(3); private SyncInteger d = new SyncInteger(4); private SyncInteger e = new SyncInteger(5); /** * Ensures that SyncValueGroup replicates values and * calls valueChange. */ @SuppressWarnings(UNCHECKED) @Test public void testSyncValueGroup() { // Link tests a.link(b); assertTrue(a.getValue() == b.getValue()); assertTrue(1 == b.getValue()); b.setValue(2); assertTrue(2 == a.getValue()); b.link(c); assertTrue(2 == c.getValue()); c.setValue(3); assertTrue(3 == a.getValue()); assertTrue(3 == b.getValue()); a.setValue(4); assertTrue(4 == c.getValue()); assertTrue(4 == b.getValue()); b.setValue(1); assertTrue(1 == c.getValue()); assertTrue(1 == a.getValue()); d.link(e); assertTrue(d.getValue() == e.getValue()); // Join loops b.link(d); assertTrue(1 == d.getValue()); assertTrue(1 == e.getValue()); d.setValue(8); assertTrue(8 == a.getValue()); assertTrue(8 == b.getValue()); assertTrue(8 == c.getValue()); assertTrue(8 == d.getValue()); assertTrue(8 == e.getValue()); // Unlink tests c.unlink(); c.setValue(3); b.setValue(2); assertTrue(2 == a.getValue()); assertTrue(2 == b.getValue()); assertTrue(3 == c.getValue()); assertTrue(2 == d.getValue()); assertTrue(2 == e.getValue()); d.unlink(); c.link(d); a.setValue(1); assertTrue(1 == a.getValue()); assertTrue(1 == b.getValue()); assertTrue(3 == c.getValue()); assertTrue(3 == d.getValue()); assertTrue(1 == e.getValue()); } }

Files changed in fix:
tests/bugs153/pr158624/ValueChange.java tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java weaver/src/org/aspectj/weaver/ResolvedMemberImpl.java