Bug 138223 - Compiler crash on two binding @xxx pcds in one compound expression
Summary: Compiler crash on two binding @xxx pcds in one compound expression
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.5.1   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 1.5.2   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 145048 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-04-24 13:17 EDT by Adrian Colyer CLA
Modified: 2007-07-29 09:19 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Colyer CLA 2006-04-24 13:17:07 EDT
junit.framework.AssertionFailedError: test "Double at annotation matching (no binding)" failed
test "Double at annotation matching (no binding)" failed
Unexpected warning messages:
	warning at before() : transactionalOperation() {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:20:0::0 advice defined in DoubleAnnotationMatching has not been applied [Xlint:adviceDidNotMatch]
Unexpected fail messages:
	abort trouble in: 
 class Foo extends java.lang.Object:
  void <init>():
                    ALOAD_0     // LFoo; this   (line 26)
                    INVOKESPECIAL java.lang.Object.<init> ()V
    constructor-execution(void Foo.<init>())
    |               RETURN
    constructor-execution(void Foo.<init>())
  end void <init>()

  public void foo()    org.aspectj.weaver.MethodDeclarationLineNumber: 28:533
:
    method-execution(void Foo.foo())
    |               RETURN   (line 28)
    method-execution(void Foo.foo())
  end public void foo()

  public void bar()    org.aspectj.weaver.MethodDeclarationLineNumber: 30:563
:
    method-execution(void Foo.bar())
    |               RETURN   (line 30)
    method-execution(void Foo.bar())
  end public void bar()

end  class Foo
 -- (BCException) Impossible! annotation=[Tx]  shadow=[method-execution(void Foo.foo()) at /private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:28::533]    pointcut is at [/private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:15::316]
when implementing on shadow method-execution(void Foo.foo())
when weaving type Foo
when weaving classes 
when weaving 
when batch building BuildConfig[null] #Files=1

Impossible! annotation=[Tx]  shadow=[method-execution(void Foo.foo()) at /private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:28::533]    pointcut is at [/private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:15::316]
when implementing on shadow method-execution(void Foo.foo())
when weaving type Foo
when weaving classes 
when weaving 
when batch building BuildConfig[null] #Files=1

org.aspectj.weaver.BCException: Impossible! annotation=[Tx]  shadow=[method-execution(void Foo.foo()) at /private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:28::533]    pointcut is at [/private/tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj:15::316]
when implementing on shadow method-execution(void Foo.foo())
when weaving type Foo
when weaving classes 
when weaving 
when batch building BuildConfig[null] #Files=1

	at org.aspectj.weaver.patterns.AnnotationPointcut.findResidueInternal(AnnotationPointcut.java:201)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.IfPointcut.findResidueInternal(IfPointcut.java:173)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.patterns.OrPointcut.findResidueInternal(OrPointcut.java:96)
	at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267)
	at org.aspectj.weaver.bcel.BcelAdvice.specializeOn(BcelAdvice.java:132)
	at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:325)
	at org.aspectj.weaver.Shadow.implement(Shadow.java:455)
	at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:2236)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:491)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:109)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1560)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1511)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1291)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1113)
	at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:311)
	at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:183)
	at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:70)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:367)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:862)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:242)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:161)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
	at org.aspectj.tools.ajc.Main.run(Main.java:367)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:246)
	at org.aspectj.tools.ajc.Ajc.compile(Ajc.java:199)
	at org.aspectj.tools.ajc.Ajc.compile(Ajc.java:163)
	at org.aspectj.tools.ajc.AjcTestCase.ajc(AjcTestCase.java:510)
	at org.aspectj.testing.CompileSpec.execute(CompileSpec.java:53)
	at org.aspectj.testing.AjcTest.runTest(AjcTest.java:68)
	at org.aspectj.testing.XMLBasedAjcTestCase.runTest(XMLBasedAjcTestCase.java:111)
	at org.aspectj.systemtest.ajc152.Ajc152Tests.testDoubleAnnotationMatching_pr138221(Ajc152Tests.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)


command was: ajc -classpath /Users/adrian/projects/aspectjdev/lib/test/aspectjrt.jar:../testing-client/bin:../runtime/bin:../aspectj5rt/bin:../lib/junit/junit.jar:../bridge/bin:../loadtime/bin:../weaver/bin:../weaver5/bin:../aj-build/jars/bridge.jar:../aj-build/jars/util.jar:../aj-build/jars/loadtime.jar:../aj-build/jars/weaver.jar:../aj-build/jars/weaver5.jar:../aj-build/jars/asm.jar:../lib/test/testing-client.jar:../lib/test/aspectjrt.jar:/tmp/ajcSandbox/ajcTest18924.tmp -1.5 /tmp/ajcSandbox/ajcTest18924.tmp/DoubleAnnotationMatching.aj -d /tmp/ajcSandbox/ajcTest18924.tmp
	at junit.framework.Assert.fail(Assert.java:47)
	at org.aspectj.tools.ajc.AjcTestCase.assertMessages(AjcTestCase.java:452)
	at org.aspectj.testing.CompileSpec.execute(CompileSpec.java:56)
	at org.aspectj.testing.AjcTest.runTest(AjcTest.java:68)
	at org.aspectj.testing.XMLBasedAjcTestCase.runTest(XMLBasedAjcTestCase.java:111)
	at org.aspectj.systemtest.ajc152.Ajc152Tests.testDoubleAnnotationMatching_pr138221(Ajc152Tests.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Comment 1 Adrian Colyer CLA 2006-04-24 13:17:31 EDT
See test case in bugs152/pr138223 to reproduce.
Comment 2 Andrew Clement CLA 2006-05-17 11:47:04 EDT
<abracadabra> this now works </abracadabra>

testcase is beefed up to prove it.
Comment 3 Adrian Colyer CLA 2006-06-02 08:38:39 EDT
*** Bug 145048 has been marked as a duplicate of this bug. ***
Comment 4 Eclipse Webmaster CLA 2007-07-29 09:19:36 EDT
Changing OS from Mac OS to Mac OS X as per bug 185991