diff options
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 |