diff options
author | Stephan Herrmann | 2014-11-23 22:19:50 +0000 |
---|---|---|
committer | Stephan Herrmann | 2014-11-23 22:19:50 +0000 |
commit | 3cfd5d1146a695649beb63d6f1e6996e9f067d0e (patch) | |
tree | 740cfd481db5fb7e361a39dda5f62f128fa60882 | |
parent | 8e7340d32fcde9638ba2eab7350e0c5d13a3fb32 (diff) | |
download | org.eclipse.objectteams-3cfd5d1146a695649beb63d6f1e6996e9f067d0e.tar.gz org.eclipse.objectteams-3cfd5d1146a695649beb63d6f1e6996e9f067d0e.tar.xz org.eclipse.objectteams-3cfd5d1146a695649beb63d6f1e6996e9f067d0e.zip |
Bug 448378 - [ot] NPE in TeamAnchor.getBestNameFromStat
2 files changed, 24 insertions, 1 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/TeamAnchor.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/TeamAnchor.java index 04b31e6a7..143659451 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/TeamAnchor.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/TeamAnchor.java @@ -243,7 +243,7 @@ public abstract class TeamAnchor extends Binding implements ITeamAnchor { } else if (expr instanceof FieldReference) { // a field reference => append one element to the receiver's bestNamePath: FieldReference fieldRef = (FieldReference)expr; - if (fieldRef.binding.isFinal()) + if (fieldRef.binding != null && fieldRef.binding.isFinal()) { ITeamAnchor[] prefix = getBestNameFromStat(fieldRef.receiver); if (prefix == null) diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java index c57ce4502..8b47b30cc 100644 --- a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java +++ b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java @@ -5398,4 +5398,27 @@ public class ReportedBugs extends AbstractOTJLDTest { "}\n" }); } + + public void testBug448378() { + runNegativeTest( + new String[] { + "C.java", + "public class C {\n" + + " \n" + + " void test() {\n" + + " try {\n" + + " final C c = missing().v;\n" + + " } finally {\n" + + " System.out.println(0); \n" + + " }\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in C.java (at line 5)\n" + + " final C c = missing().v;\n" + + " ^^^^^^^\n" + + "The method missing() is undefined for the type C\n" + + "----------\n"); + } } |