Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] compilation error with generics (possible bug?)

#: Andy Clement changed the world a bit at a time by saying on  11/16/2005 5:59 PM :#
I have fixed it (again) - I've included both variants of the testcode
in the test suite.  The original one I was mistakenly using and the
one you included a post or two earlier on this thread.

I really hope it works for you now ...

Andy.



Thanks a lot Andy for the effort and congrats to the team for a new milestone. I really hope that the next issue I am facing I will be able to track it down (sure with your help).

thanks again,

./alex
--
.w( the_mindstorm )p.

On 16/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
#: Andy Clement changed the world a bit at a time by saying on  11/16/2005 11:10 AM :#
> I see, so you've changed Bean since the original post in this thread -
> that explains it.  I've just changed what I'm running against HEAD and
> it fails in the way you describe. I will take a look now.
>
> Andy.
>

Andy if you can point me to the right direction I could probably try myself to figure out what the
problem is.

./alex
--
.w( the_mindstorm )p.

> On 16/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
>> #: Andy Clement changed the world a bit at a time by saying on  11/16/2005 10:36 AM :#
>> >> 6/ Questions:
>> >>  the CVS isn't updated immediately or does it work rather like the SF CVS which is
>> >> updated after a few hours
>> >
>> > If accessing CVS as anonymous, you may be seeing a mirror that hasn't
>> > updated yet - however I'm surprised if the fix for your bug that I put
>> > in over 24hours ago isnt in your latest extract.
>> >
>> >> why there is "no source information available" reported in the error?
>> > usually that only happens if there is missing debug info or you are
>> > binary weaving - I don't know why in this case here  but given that
>> > the error message is bogus anyway, I didn't investigate.  It is
>> > possibly because the method 'Long LongIdentifiable.getId()' doesnt
>> > exist in the source, it exists in the class file for LongIdentifiable
>> > because it implements a parameterization of Identifiable.
>> >
>> > You can tell if you have an up to date copy of aspectj - does it have
>> > your test program in it?
>> > You will find it in the tests module 'tests/java5/generics/bugs/lists/*.java'
>> >
>> > I've built AspectJ this morning and compiled and run your program no
>> > problem - I hope the version I'm working with is similar to what you
>> > are working with.
>> >
>> > Andy.
>> >
>> >
>>
>> I have found the test there. However there is big difference between the code I have submitted and
>> the one there:
>>
>> [original-code]
>> public class Bean
>> }
>> [/original-code]
>>
>> while:
>>
>> [cvs-code]
>> public class Bean implements LongIdentifiable {
>>
>>    public Long getId() {
>>      return null;
>>    }
>>
>>    public void setId(Long t) {
>>    }
>>
>> }
>> [/code].
>>
>> It looks like I am correctly updating and using the last CVS version, so I am wondering if the above
>> is the reason the test works for you and not for me.
>>
>> I appreciate very much your effort Andy. It is decisive to me to pass over this start and be able to
>> convince the team that AspectJ is the thing we need.
>>
>> thanks again,
>>
>> ./alex
>> --
>> .w( the_mindstorm )p.
>>
>> >
>> >
>> > On 15/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
>> >> #: Andy Clement changed the world a bit at a time by saying on  11/15/2005 6:15 PM :#
>> >> > I've just committed the fix for this second problem - it will be in
>> >> > the next dev build.
>> >> >
>> >> > Andy.
>> >> >
>> >>
>> >> Probably it would be the time to start building AspectJ and maybe AJDT by myself :-).
>> >> But it still results in 3 errors.
>> >>
>> >> Here is what I've done:
>> >>
>> >> 1/ cvs update, resulted in
>> >>
>> >> [log]
>> >> [20051115-1854]
>> >> ? aspectj-attic/bin
>> >> P loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
>> >> P loadtime/src/org/aspectj/weaver/loadtime/DefaultWeavingContext.java
>> >> P loadtime/src/org/aspectj/weaver/loadtime/IWeavingContext.java
>> >> P loadtime/src/org/aspectj/weaver/loadtime/Options.java
>> >> P loadtime/src/org/aspectj/weaver/loadtime/WeavingURLClassLoader.java
>> >> P loadtime/testsrc/org/aspectj/weaver/loadtime/WeavingURLClassLoaderTest.java
>> >> P org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
>> >> P org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AfterAdviceDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AfterReturningAdviceDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AfterThrowingAdviceDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AndPointcut.java
>> >> P org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AroundAdviceDeclaration.java
>> >> P org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/BeforeAdviceDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/CflowPointcut.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/DeclareDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/DefaultPointcut.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/InterTypeFieldDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/InterTypeMethodDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/NotPointcut.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/OrPointcut.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/PerCflow.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/PerObject.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/PerTypeWithin.java
>> >> P org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/PointcutDeclaration.java
>> >> U org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/ReferencePointcut.java
>> >> P org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/ASTVisitorTest.java
>> >> P org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java
>> >> P runtime/src/org/aspectj/runtime/reflect/StringMaker.java
>> >> P testing/newsrc/org/aspectj/testing/RunSpec.java
>> >> U tests/bugs150/pr115235.aj
>> >> U tests/bugs150/pr115235b.aj
>> >> U tests/bugs150/pr113447/PR113447.java
>> >> U tests/bugs150/pr113447/PR113447a.java
>> >> U tests/bugs150/pr113447/PR113447b.java
>> >> U tests/bugs150/pr113447/PR113447c.java
>> >> U tests/bugs150/pr113447/PR113447d.java
>> >> U tests/bugs150/pr113447/PR113447e.java
>> >> U tests/bugs150/pr114436/ConcreteSimpleTracing.aj
>> >> U tests/bugs150/pr114436/SimpleTrace.aj
>> >> U tests/bugs150/pr114436/TestClass.java
>> >> U tests/bugs150/pr115788/AAA.java
>> >> U tests/java5/generics/binaryBridging/ThreeA.java
>> >> U tests/java5/generics/binaryBridging/ThreeB.java
>> >> U tests/java5/generics/binaryBridging/ThreeX.java
>> >> U tests/java5/generics/binaryBridging/TwoA.java
>> >> U tests/java5/generics/binaryBridging/TwoB.java
>> >> U tests/java5/generics/binaryBridging/TwoX.java
>> >> P tests/java5/generics/binaryBridging/readme.txt
>> >> U tests/java5/generics/bugs/lists/Bean.java
>> >> U tests/java5/generics/bugs/lists/Identifiable.java
>> >> U tests/java5/generics/bugs/lists/IdentifiableAspect.java
>> >> U tests/java5/generics/bugs/lists/LongIdentifiable.java
>> >> U tests/ltw/AbstractAspect.aj
>> >> U tests/ltw/AbstractSuperAspect.aj
>> >> P tests/ltw/Main.java
>> >> U tests/ltw/TestITDMethod.java
>> >> U tests/ltw/TestMain.java
>> >> U tests/ltw/aop-abstractaspect.xml
>> >> U tests/ltw/aop-aspectsinclude.xml
>> >> U tests/ltw/aop-aspectsincludewithlintwarning.xml
>> >> U tests/ltw/aop-defineaspect.xml
>> >> U tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
>> >> P tests/src/org/aspectj/systemtest/ajc150/GenericsTests.java
>> >> U tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
>> >> P tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java
>> >> P tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml
>> >> P tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
>> >> P weaver/src/org/aspectj/weaver/ConcreteTypeMunger.java
>> >> P weaver/src/org/aspectj/weaver/Lint.java
>> >> P weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java
>> >> P weaver/src/org/aspectj/weaver/ResolvedType.java
>> >> P weaver/src/org/aspectj/weaver/ResolvedTypeMunger.java
>> >> P weaver/src/org/aspectj/weaver/TypeFactory.java
>> >> P weaver/src/org/aspectj/weaver/UnresolvedType.java
>> >> P weaver/src/org/aspectj/weaver/XlintDefault.properties
>> >> P weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
>> >> U weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
>> >> P weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
>> >> P weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java
>> >> P weaver/src/org/aspectj/weaver/patterns/AnnotationPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/ArgsPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/ExposedState.java
>> >> P weaver/src/org/aspectj/weaver/patterns/IfPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/PerThisOrTargetPointcutVisitor.java
>> >> P weaver/src/org/aspectj/weaver/patterns/Pointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/ReferencePointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/ThisOrTargetAnnotationPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/ThisOrTargetPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/WithinAnnotationPointcut.java
>> >> P weaver/src/org/aspectj/weaver/patterns/WithinCodeAnnotationPointcut.java
>> >> P weaver/src/org/aspectj/weaver/tools/WeavingAdaptor.java
>> >> [/log]
>> >>
>> >> 2/ customize org.aspectj\modules\build\local.properties to
>> >>
>> >> build.version=DEVELOPMENT
>> >> build.version.base=1.5
>> >> build.version.long=DEVELOPMENT
>> >> build.version.short=DEVELOPMENT
>> >> java14.home=c:/java/jdks/j2sdk1.4.2_09
>> >> java15.home=c:/java/jdks/jdk1.5.0_05
>> >>
>> >> 3/ run ant in org.aspectj\modules\build\
>> >>
>> >> 4/ copied the jars from (inside) aj-build\dist\aspectj-DEVELOPMENT.jar over my aspectj installation
>> >> lib jars
>> >>
>> >> 5/ run from command line:
>> >>
>> >> d:\workspace\java\research\aj5_examples\src\main>d:\java\progs\aspectj1.5dev\bin\ajc -sourceroots
>> >> org\noco\generics -source 1.5  -target 1.5 -d ..\..\build\classes
>> >>
>> >> D:\workspace\java\research\aj5_examples\src\main\org\noco\generics\IdentifiableAspect.aj:8 [error]
>> >> can't override java.lang.Long org.noco.generics.LongIdentifiable.getId() with java.lang.Object
>> >> org.noco.generics.Bean.getId() return types don't match
>> >>
>> >> D:\workspace\java\research\aj5_examples\src\main\org\noco\generics\Bean.java:1 [error] The return
>> >> type is incompatible with org.noco.generics.Identifiable<java.lang.Long>.getId()
>> >> (no source information available)
>> >> D:\workspace\java\research\aj5_examples\src\main\org\noco\generics\Bean.java:1 [error] can't
>> >> override java.lang.Long org.noco.generics.LongIdentifiable.getId() with java.lang.Object
>> >> org.noco.generics.Bean.getId() return types don't match
>> >> (no source information available)
>> >>
>> >> 3 errors
>> >>
>> >> 6/ Questions:
>> >> - the CVS isn't updated immediately or does it work rather like the SF CVS which is updated after a
>> >> few hours
>> >> - why there is "no source information available" reported in the error?
>> >>
>> >> ./alex
>> >> --
>> >> .w( the_mindstorm )p.
>> >>
>> >>
>> >> > On 15/11/05, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
>> >> >> The original program you posted blew up at compile time - which I
>> >> >> fixed.  But I've just modified your code to do something (added a
>> >> >> main) and can confirm the code it now produces blows up as you
>> >> >> describe - i'll take a look.
>> >> >>
>> >> >> /sigh
>> >> >>
>> >> >> Andy.
>> >> >>
>> >> >>
>> >> >> On 15/11/05, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
>> >> >> > This dev build has not gone into an AJDT yet - I can't confirm whether
>> >> >> > jars from the dev build are currently compatible with AJDT.  Does your
>> >> >> > program at least compile OK on the command line using the dev build?
>> >> >> >
>> >> >> > Andy.
>> >> >> >
>> >> >> >
>> >> >> > On 15/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
>> >> >> > > #: Alexandru Popescu changed the world a bit at a time by saying on  11/15/2005 5:09 PM :#
>> >> >> > > > #: Andy Clement changed the world a bit at a time by saying on  11/14/2005 9:38 PM :#
>> >> >> > > >> dont worry, i've already fixed it.
>> >> >> > > >>
>> >> >> > > >
>> >> >> > > > Andy do you know if the fix went into aspectj-DEVELOPMENT-20051115132507.jar?
>> >> >> > > >
>> >> >> > > > I have this dev build jars replaced in the AJDT and after a clean and rebuild I am still seeing the
>> >> >> > > > same errors.
>> >> >> > > >
>> >> >> > > > ./alex
>> >> >> > > > --
>> >> >> > > > .w( the_mindstorm )p.
>> >> >> > > >
>> >> >> > >
>> >> >> > > The Cross References view was correctly displaying the info, so I thought I should give it a try.
>> >> >> > > But this resulted in
>> >> >> > >
>> >> >> > > [stack]
>> >> >> > > java.lang.ClassFormatError: Method getId in class org/noco/generics/LongIdentifiable has illegal
>> >> >> > > modifiers: 0x241
>> >> >> > >         at java.lang.ClassLoader.defineClass1(Native Method)
>> >> >> > >         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>> >> >> > >         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>> >> >> > >         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>> >> >> > >         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>> >> >> > >         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>> >> >> > >         at java.security.AccessController.doPrivileged(Native Method)
>> >> >> > >         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> >> >> > >         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> >> >> > >         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
>> >> >> > >         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> >> >> > >         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> >> >> > > [/stack]
>> >> >> > >
>> >> >> > > ./alex
>> >> >> > > --
>> >> >> > > .w( the_mindstorm )p.
>> >> >> > >
>> >> >> > > >> On 14/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
>> >> >> > > >>> #: Andy Clement changed the world a bit at a time by saying on  11/14/2005 4:04 PM :#
>> >> >> > > >>> > Although .... I just tried it against HEAD and it doesn't fail like
>> >> >> > > >>> > you describe, it fails in a different way :)  So i'll still take a bug
>> >> >> > > >>> > and fix it asap.
>> >> >> > > >>> >
>> >> >> > > >>> > Andy.
>> >> >> > > >>> >
>> >> >> > > >>>
>> >> >> > > >>> Though not clear who will rais the bug :-).
>> >> >> > > >>>
>> >> >> > > >>> ./alex
>> >> >> > > >>> --
>> >> >> > > >>> .w( the_mindstorm )p.
>> >> >> > > >>>
>> >> >> > > >>> > On 14/11/05, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
>> >> >> > > >>> >> Looks like a bug to me - please can you raise it?
>> >> >> > > >>> >>
>> >> >> > > >>> >> Andy.
>> >> >> > > >>> >>
>> >> >> > > >>> >> On 14/11/05, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
>> >> >> > > >>> >> > Hi!
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > The following code seems correct to me:
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > [code]
>> >> >> > > >>> >> > public interface Identifiable<T> {
>> >> >> > > >>> >> >    T getId();
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >    void setId(T t);
>> >> >> > > >>> >> > }
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > public interface LongIdentifiable extends Identifiable<Long> {
>> >> >> > > >>> >> > }
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > public class Bean implements LongIdentifiable {
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >    public Long getId() {
>> >> >> > > >>> >> >      return null;
>> >> >> > > >>> >> >    }
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >    public void setId(Long t) {
>> >> >> > > >>> >> >    }
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > }
>> >> >> > > >>> >> > [/code]
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > at least it compiles oke with Eclipse 3.1.1.
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Going back to AspectJ and AJDT adding the following aspect:
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > [code]
>> >> >> > > >>> >> > public aspect IdentifiableAspect {
>> >> >> > > >>> >> >      declare parents: Bean implements LongIdentifiable;
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >      private Long LongIdentifiable.m_id;
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >      public Long LongIdentifiable.getId() {
>> >> >> > > >>> >> >          return m_id;
>> >> >> > > >>> >> >      }
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >      public void LongIdentifiable.setId(Long id) {
>> >> >> > > >>> >> >          m_id= id;
>> >> >> > > >>> >> >      }
>> >> >> > > >>> >> > }
>> >> >> > > >>> >> > [/code]
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > results in 3 compilation errors:
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Severity        Description     Resource        In Folder       Location        Creation Time   Id
>> >> >> > > >>> >> > 2       can't override java.lang.Long org.noco.generics.LongIdentifiable.getId() with java.lang.Object
>> >> >> > > >>> >> > org.noco.generics.Bean.getId() return types don't match IdentifiableAspect.aj
>> >> >> > > >>> >> > aj5_examples/src/main/org/noco/generics line 8  November 14, 2005 3:01:43 PM    27085
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Severity        Description     Resource        In Folder       Location        Creation Time   Id
>> >> >> > > >>> >> > 2       The return type is incompatible with org.noco.generics.Identifiable<java.lang.Long>.getId()
>> >> >> > > >>> >> > Bean.java       aj5_examples/src/main/org/noco/generics line 1  November 14, 2005 3:01:43 PM    27094
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Severity        Description     Resource        In Folder       Location        Creation Time   Id
>> >> >> > > >>> >> > 2       can't override java.lang.Long org.noco.generics.LongIdentifiable.getId() with java.lang.Object
>> >> >> > > >>> >> > org.noco.generics.Bean.getId() return types don't match Bean.java
>> >> >> > > >>> >> > aj5_examples/src/main/org/noco/generics line 1  November 14, 2005 3:01:43 PM    27095
>> >> >> > > >>> >> >
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Env:
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Eclipse 3.1.1
>> >> >> > > >>> >> > AJDT: ajdt_1.3.0.20051108143751_archive.zip
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > Am I doing something wrong? Is this a known bug?
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > thanks in avdance,
>> >> >> > > >>> >> >
>> >> >> > > >>> >> > ./alex
>> >> >> > > >>> >> > --
>> >> >> > > >>> >> > .w( the_mindstorm )p.
>> >> >> > > >>> >> >

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users




!DSPAM:437b5797889641495227441!





Back to the top