Browse Source

Bug 155972 "NullPointerException in ConstructorSignature.getConstructor()"

tags/BEFORE_133532
mwebster 17 years ago
parent
commit
090de7e4c5

BIN
lib/aspectj/lib/aspectjrt.jar View File


BIN
lib/test/aspectjrt.jar View File


+ 1
- 1
runtime/src/org/aspectj/runtime/reflect/ConstructorSignatureImpl.java View File

@@ -48,7 +48,7 @@ class ConstructorSignatureImpl extends CodeSignatureImpl implements ConstructorS
public Constructor getConstructor() {
if (constructor == null) {
try {
constructor = declaringType.getDeclaredConstructor(getParameterTypes());
constructor = getDeclaringType().getDeclaredConstructor(getParameterTypes());
} catch (Exception ex) {
; // nothing we can do, caller will see null
}

+ 1
- 1
runtime/src/org/aspectj/runtime/reflect/FieldSignatureImpl.java View File

@@ -55,7 +55,7 @@ public class FieldSignatureImpl extends MemberSignatureImpl implements FieldSign
public Field getField() {
if (field == null) {
try {
field = declaringType.getDeclaredField(getName());
field = getDeclaringType().getDeclaredField(getName());
} catch (Exception ex) {
; // nothing we can do, caller will see null
}

+ 1
- 1
runtime/src/org/aspectj/runtime/reflect/InitializerSignatureImpl.java View File

@@ -50,7 +50,7 @@ class InitializerSignatureImpl extends CodeSignatureImpl implements InitializerS
public Constructor getInitializer() {
if (constructor == null) {
try {
constructor = declaringType.getDeclaredConstructor(getParameterTypes());
constructor = getDeclaringType().getDeclaredConstructor(getParameterTypes());
} catch (Exception ex) {
; // nothing we can do, caller will see null
}

+ 8
- 0
tests/bugs153/pr155972/ConstructorTest.java View File

@@ -0,0 +1,8 @@

public class ConstructorTest {

public static void main(String[] args) {
new ConstructorTest();
}

}

+ 9
- 0
tests/bugs153/pr155972/FieldTest.java View File

@@ -0,0 +1,9 @@
public class FieldTest {
private static int intField;
public static void main(String[] args) {
intField = 999;
}
}

+ 8
- 0
tests/bugs153/pr155972/InitializerTest.java View File

@@ -0,0 +1,8 @@

public class InitializerTest {

public static void main(String[] args) {
}

}

+ 30
- 0
tests/bugs153/pr155972/SignatureImplAspect.aj View File

@@ -0,0 +1,30 @@


import java.lang.reflect.Member;

import org.aspectj.lang.reflect.ConstructorSignature;
import org.aspectj.lang.reflect.FieldSignature;
import org.aspectj.lang.reflect.InitializerSignature;

public aspect SignatureImplAspect {
before () : (execution(ConstructorTest.new(..))) {
//thisJoinPointStaticPart.getSignature().getDeclaringType();
Member m = ((ConstructorSignature) thisJoinPointStaticPart
.getSignature()).getConstructor();
System.out.println(m.getName());
}
before() : set(int FieldTest.intField) {
//thisJoinPointStaticPart.getSignature().getDeclaringType();
Member m = ((FieldSignature) thisJoinPointStaticPart
.getSignature()).getField();
System.out.println(m.getName());
}
before() : staticinitialization(InitializerTest) {
//thisJoinPointStaticPart.getSignature().getDeclaringType();
Member m = ((InitializerSignature) thisJoinPointStaticPart
.getSignature()).getInitializer();
System.out.println(m.getName());
}
}

+ 12
- 0
tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java View File

@@ -71,6 +71,18 @@ public class Ajc153Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("reweavableAspectNotRegistered error");
}
public void testNPEinConstructorSignatureImpl_pr155972 () {
runTest("NPE in ConstructorSignatureImpl");
}
public void testNPEinFieldSignatureImpl_pr155972 () {
runTest("NPE in FieldSignatureImpl");
}
public void testNPEinInitializerSignatureImpl_pr155972 () {
runTest("NPE in InitializerSignatureImpl");
}
/////////////////////////////////////////
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Ajc153Tests.class);

+ 27
- 0
tests/src/org/aspectj/systemtest/ajc153/ajc153.xml View File

@@ -356,4 +356,31 @@
</run>
</ajc-test>
<ajc-test dir="bugs153/pr155972" title="NPE in ConstructorSignatureImpl">
<compile files="ConstructorTest.java, SignatureImplAspect.aj" options="-Xlint:ignore"/>
<run class="ConstructorTest">
<stdout>
<line text="ConstructorTest"/>
</stdout>
</run>
</ajc-test>
<ajc-test dir="bugs153/pr155972" title="NPE in FieldSignatureImpl">
<compile files="FieldTest.java, SignatureImplAspect.aj" options="-Xlint:ignore"/>
<run class="FieldTest">
<stdout>
<line text="intField"/>
</stdout>
</run>
</ajc-test>
<ajc-test dir="bugs153/pr155972" title="NPE in InitializerSignatureImpl">
<compile files="InitializerTest.java, SignatureImplAspect.aj" options="-Xlint:ignore"/>
<run class="InitializerTest">
<stdout>
<line text="InitializerTest"/>
</stdout>
</run>
</ajc-test>
</suite>

Loading…
Cancel
Save