Summary: | passing null to array arguments confuzes static join point signature. | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Lasse R. Nielsen <atwork> |
Component: | Compiler | Assignee: | Adrian Colyer <adrian.colyer> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.2.1 | ||
Target Milestone: | 1.2.1 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: |
Description
Lasse R. Nielsen
2004-07-20 06:22:52 EDT
marked as target 1.2.1 Turns out I only *said* I was marking this for 1.2.1 last time, but I didn't actually do it. this time I really have so we should get a fix in soon. This bug appears to be due to a problem of us using loadClass() rather than Class.forName() to get hold of the array type. The raiser says that this fails: obj.test(null, null); obj.test(null, new Main[]{}); and this works: obj.test(null, new Main[]{}); obj.test(null, null); However, this also works: Main m[] = new Main[3]; obj.test(null, null); obj.test(null, null); Basically using Class.forName() will attempt to bring the type into existence (i.e. it understands "[Lblahblah;" is an array type that needs dynamically creating) whereas the loadClass() method that we use right now will just look around for it - if it doesn't find it then it throws a ClassNotFoundException. That's why it works if someone else has referred to the array type earlier on - they will have caused it to be dynamically created for loadClass() to find. I'm about to stick in a fix for it... Fix checked in - waiting for build (sorry about working on a bug assigned to you Adrian!). Fix available: BUILD COMPLETE - build.364 Date of build: 08/27/2004 22:17:38 Time to build: 95 minutes 15 seconds Last changed: 08/27/2004 17:02:18 Latest good AspectJ jar available at: download.eclipse.org/technology/ajdt/dev/aspectj-DEVELOPMENT.jar Fix released as part of AspectJ 1.2.1 |