diff options
author | aclement <aclement> | 2004-09-30 08:18:32 +0000 |
---|---|---|
committer | aclement <aclement> | 2004-09-30 08:18:32 +0000 |
commit | a89962434e080f2cb939dd59726f1acd65b31d6a (patch) | |
tree | fee7a2216679f748163ed3b5c1b2e673f297aa18 | |
parent | 3ea58899058ca5ff3ec3f9ad7396cfde56bda2a5 (diff) | |
download | aspectj-a89962434e080f2cb939dd59726f1acd65b31d6a.tar.gz aspectj-a89962434e080f2cb939dd59726f1acd65b31d6a.zip |
Fix for Bugzilla Bug 75129
NPE on thisJoinPoint mistake
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 |