Hey,
So we do indeed see the rogue entry in that javap:
public int compareTo(java.lang.Object); flags: ACC_PUBLIC, ACC_BRIDGE, 0x200
Who on earth put that 0x200 in there! (ACC_INTERFACE)
Question going through my mind: - what aspects are applying to the class containing this method? (What kind of pointcuts/advice) - if you still use the aspectj compiler but no aspects apply to this class, does it still break that method? - what version of AspectJ is in use? Have you tried with 1.8.5? - Would it work if binary weaving rather than compile time weaving?
But even if I knew all the answers to those questions, I’m not sure it’ll help me pin it down - I’d be trying to recreate it just like you are. One difference between compiling in different contexts (in the IDE or with maven) is the ordering of compilation, which can sometimes influence things. The ordering can be influenced by the names of things so in trying to recreate it can be important to keep the type names/package names the same - not just that you have a compareTo method that needs a bridge method. It is possible to turn on verbose mode to see the compile order and confirm how it varies between the two.
I could probably fix it very quickly if I could have it failing locally for me. We could create some debug builds but it’d take a while to home in on the issue. If I’m debugging it myself I’m probably putting breakpoints in a few places: org.aspectj.apache.bcel.classfile.Method constructor that takes a modifiers set. the setModifiers in that same area of the code. There are a number of representations of Methods (JDT, AspectJ, BCEL) - any of them could be making a mistake.
cheers, Andy
Hi Andy,
I'm struggling to reproduce this in a separate project, although it still occurs in the original project.
Not sure what to try next...any ideas?
Tim
_______________________________________________ aspectj-users mailing list aspectj-users@xxxxxxxxxxxTo change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users
|