Community
Participate
Working Groups
Not a clue why: eclipse.buildId=N20100528-2000 java.version=1.6.0_19 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB Command-line arguments: -os win32 -ws win32 -arch x86_64 Version: 2.1.0.e36x-20100504-1600 AspectJ version: 1.6.9.20100422170000 Error Sun May 30 03:08:39 BST 2010 Compile error: NullPointerException thrown: null java.lang.NullPointerException at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CastExpression.checkAlternateBinding(CastExpression.java:243) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CastExpression.checkNeedForArgumentCasts(CastExpression.java:158) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode.checkInvocationArguments(ASTNode.java:324) at org.aspectj.ajdt.internal.compiler.ast.Proceed.resolveType(Proceed.java:170) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:216) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:433) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:196) at org.aspectj.ajdt.internal.compiler.ast.AdviceDeclaration.resolveStatements(AdviceDeclaration.java:128) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:404) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1109) at org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.resolve(AspectDeclaration.java:111) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1188) at org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:366) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:636) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1022) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:268) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:181) at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:105) at org.aspectj.ajde.core.AjCompiler.buildFresh(AjCompiler.java:97) at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:243) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
I really have no idea what's going on here, so I went for lowest number of tokens: import java.util.ArrayList; public aspect Pony { boolean around(String[] resources) : args(resources) { return proceed((String[]) new ArrayList().toArray()); } } I just don't even...
Trying to recreate this now - finding it tricky. Given that the advice doesn't include a kind (execution/call/etc), I am not sure which joinpoint is causing it a problem. --- Pony.aj import java.util.ArrayList; public aspect Pony { boolean around(String[] resources) : args(resources) { return proceed((String[]) new ArrayList().toArray()); } } --- Target.java class Target { public static boolean main(String[] argv) { return false; } } Compiling these two together works. Although I see with weaveInfo the advice advises itself (because it also takes a String[] argument). Do you have a class you weave that sample against that shows the NPE?
The problem is during the compile of the .aj file itself. I can't, however, reproduce this in a clean Eclipse install, with the old project and workspace. Also, it's trivial to work-around by extracting to a local: String[] s = (String[]) new ArrayL.. return proceed(s); I'm guessing interaction with other plugins (<b style="ALARM">Scala</b>, wst, egit or subclipse) but can't really be bothered to diagnose further, sorry for wasting your time. Feel free to close. Clean set-up (where this issue does NOT occur): New Eclipse install (N20100601-2000). New Workspace. Install just ajdt from http://download.eclipse.org/tools/ajdt/36/dev/update New project -> AspectJ. Yes, I'd like the weaving service on. Yes, I'd like to restart. Yes, I'd like to reindex. New -> AspectJ -> Aspect. Name: Pony. Paste in contents from comment 1 Save.
unsetting the target field which is currently set for something already released