summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2004-09-30 08:18:32 +0000
committeraclement <aclement>2004-09-30 08:18:32 +0000
commita89962434e080f2cb939dd59726f1acd65b31d6a (patch)
treefee7a2216679f748163ed3b5c1b2e673f297aa18
parent3ea58899058ca5ff3ec3f9ad7396cfde56bda2a5 (diff)
downloadaspectj-a89962434e080f2cb939dd59726f1acd65b31d6a.tar.gz
aspectj-a89962434e080f2cb939dd59726f1acd65b31d6a.zip
Fix for Bugzilla Bug 75129
NPE on thisJoinPoint mistake
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java4
-rw-r--r--tests/ajcTestsFailing.xml9
-rw-r--r--tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java6
-rw-r--r--tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml11
4 files changed, 19 insertions, 11 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
index a873f0f2b..a0f809766 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
@@ -158,6 +158,10 @@ public class ThisJoinPointVisitor extends ASTVisitor {
private void replaceEffectivelyStaticRef(MessageSend call) {
NameReference receiver = (NameReference) call.receiver;
+
+ // Don't continue if the call binding is null, as we are going to report an error about this line of code!
+ if (call.binding==null) return;
+
//System.err.println("replace static ref: " + receiver + " is " + System.identityHashCode(receiver));
receiver.binding = thisJoinPointStaticPartDecLocal; //thisJoinPointStaticPartDec;
receiver.codegenBinding = thisJoinPointStaticPartDecLocal;
diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml
index a15692546..167f12d9e 100644
--- a/tests/ajcTestsFailing.xml
+++ b/tests/ajcTestsFailing.xml
@@ -152,14 +152,5 @@
files="Test_AroundVarBug.java,AroundVarBug.java"/>
<run class="Test_AroundVarBug"/>
</ajc-test>
-
- <ajc-test
- dir="bugs"
- pr="75129"
- title="NPE on thisJoinPoint mistake">
- <compile files="TjpMistake.java">
- <message kind="error" line="22"/>
- </compile>
- </ajc-test>
</suite>
diff --git a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
index 2ea8c3221..022424090 100644
--- a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
@@ -309,5 +309,9 @@ public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void test057_decSoftWithSuper() {
runTest("declare soft can cause programs with invalid exception behaviour to be generated");
}
-}
+ public void test058_npeOnTJPerror() {
+ runTest("NPE on thisJoinPoint mistake");
+ }
+
+} \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
index ba4c2cfc8..5c76906a3 100644
--- a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
+++ b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
@@ -455,4 +455,13 @@
<compile files="PR72157.java">
<message kind="error" line="13" text="Unhandled"/>
</compile>
- </ajc-test> \ No newline at end of file
+ </ajc-test>
+
+ <ajc-test
+ dir="bugs"
+ pr="75129"
+ title="NPE on thisJoinPoint mistake">
+ <compile files="TjpMistake.java">
+ <message kind="error" line="22"/>
+ </compile>
+ </ajc-test> \ No newline at end of file