Bug 85097 - Nullpointer exception
Summary: Nullpointer exception
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.5.0M1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Adrian Colyer CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 83930 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-02-12 21:02 EST by Charles Zhang CLA
Modified: 2005-04-12 06:09 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Charles Zhang CLA 2005-02-12 21:02:33 EST
Maybe I'm doing something stupid. But at least AspectJ should tell me why I am 
stupid rather than puke exceptions. :). Here is how to reproduce:
class Test {
	private int count =0;
	public void dostuff(){
		count++;
		System.out.println("do stuff");
	}
	public static void main(String[] args) {
		Test t = new Test();
		Test t2 = new Test();
		t.dostuff();
		t2.dostuff();
	}
}

interface Threaded {
}


public abstract aspect ParentA {
	declare parents: Test implements Threaded;
	private boolean Threaded.breakit(){
		return false;
	}
	 
	//boolean breakit(){ return true};
	void around(Test t):execution(* Test.dostuff(..))&&this(t){
		while(!t.breakit()){
			proceed(t);
			try{
				Thread.sleep(1000);
			}catch(Exception e){
				
			}
		} 
		System.out.println("parent a");
	}
}

privileged aspect Son extends ParentA{
	after()  returning (boolean ret):
		call(* Threaded+.breakit())//&&target(t)
	{
	}
}
Comment 1 Charles Zhang CLA 2005-02-12 21:06:36 EST
Sorry, forgot to attach the error message:
trouble in:
ABORT

Exception thrown from AspectJ 1.5.0 M1

This might be logged as a bug already -- find current bugs at
  http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler

Bugs for exceptions thrown have titles File:line from the top stack,
e.g., "SomeFile.java:243"

If you don't find the exception below in a bug, please add a new bug
at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
To make the bug a priority, please include a test program
that can reproduce this exception.
null
java.lang.NullPointerException
        at org.aspectj.weaver.ResolvedTypeX.isConvertableFrom
(ResolvedTypeX.java
:131)
        at org.aspectj.weaver.bcel.Utility.appendConversion(Utility.java:241)
        at org.aspectj.weaver.bcel.BcelVar.appendLoadAndConvert
(BcelVar.java:61)

        at org.aspectj.weaver.bcel.BcelAdvice.getAdviceArgSetup
(BcelAdvice.java:
314)
        at org.aspectj.weaver.bcel.BcelAdvice.getAdviceInstructions
(BcelAdvice.java:270)
        at org.aspectj.weaver.bcel.BcelShadow.weaveAfterReturning
(BcelShadow.java:1380)
        at org.aspectj.weaver.bcel.BcelAdvice.implementOn(BcelAdvice.java:138)
        at org.aspectj.weaver.Shadow.implementMungers(Shadow.java:451)
        at org.aspectj.weaver.Shadow.implement(Shadow.java:334)
        at org.aspectj.weaver.bcel.BcelClassWeaver.implement
(BcelClassWeaver.java:1157)
        at org.aspectj.weaver.bcel.BcelClassWeaver.weave
(BcelClassWeaver.java:362)
        at org.aspectj.weaver.bcel.BcelClassWeaver.weave
(BcelClassWeaver.java:83)
        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:742)
        at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump
(BcelWeaver.java:707)
        at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify
(BcelWeaver.java:634)
        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:565)
        at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave
(AjCompilerAdapter.java:243)
        at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling
(AjCompilerAdapter.java:118)
        at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.java:383)
        at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation
(AjBuildManager.java:682)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuild
Manager.java:168)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild
(AjBu
ildManager.java:102)
        at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:109)
        at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
        at org.aspectj.tools.ajc.Main.run(Main.java:291)
        at org.aspectj.tools.ajc.Main.runMain(Main.java:227)
        at org.aspectj.tools.ajc.Main.main(Main.java:80)


1 fail|abort
Comment 2 Andrew Clement CLA 2005-02-13 10:30:29 EST
I think it is the 'boolean' in the after() returning advice that is causing the
problem - I remember looking at a bug in this area (when primitive types are
involved) that arose due to the changes for autoboxing.  However, although this
problem does occur in 1.5.0M1, it is already fixed in the dev release of AspectJ
1.5.0 available from the download page.
Comment 3 Adrian Colyer CLA 2005-03-23 09:41:41 EST
fixed as per andy's comment on 02-13
Comment 4 Andrew J Huff CLA 2005-04-12 06:09:36 EDT
*** Bug 83930 has been marked as a duplicate of this bug. ***