Merge pull request #2640 from aschackmull/java/nullness-fp-tests

Java: Document two FPs with unit tests.
This commit is contained in:
yo-h
2020-01-22 16:28:30 -05:00
committed by GitHub
2 changed files with 42 additions and 0 deletions

View File

@@ -168,4 +168,44 @@ public class C {
finalObj.hashCode(); // OK
}
}
private void verifyBool(boolean b) {
if (!b) {
throw new Exception();
}
}
public void ex13(int[] a) {
int i = 0;
boolean b = false;
Object obj = null;
while (a[++i] != 0) {
if (a[i] == 1) {
obj = new Object();
b = true;
} else if (a[i] == 2) {
verifyBool(b);
obj.hashCode(); // NPE - false positive
}
}
}
private void verifyNotNull(Object obj) {
if (obj == null) {
throw new Exception();
}
}
public void ex14(int[] a) {
int i = 0;
Object obj = null;
while (a[++i] != 0) {
if (a[i] == 1) {
obj = new Object();
} else if (a[i] == 2) {
verifyNotNull(obj);
obj.hashCode(); // NPE - false positive
}
}
}
}

View File

@@ -28,5 +28,7 @@
| C.java:110:25:110:27 | obj | Variable $@ may be null here because of $@ assignment. | C.java:106:5:106:30 | Object obj | obj | C.java:118:13:118:22 | ...=... | this |
| C.java:137:7:137:10 | obj2 | Variable $@ may be null here as suggested by $@ null guard. | C.java:131:5:131:23 | Object obj2 | obj2 | C.java:132:9:132:20 | ... != ... | this |
| C.java:144:15:144:15 | a | Variable $@ may be null here as suggested by $@ null guard. | C.java:141:20:141:26 | a | a | C.java:142:13:142:21 | ... == ... | this |
| C.java:188:9:188:11 | obj | Variable $@ may be null here because of $@ assignment. | C.java:181:5:181:22 | Object obj | obj | C.java:181:12:181:21 | obj | this |
| C.java:207:9:207:11 | obj | Variable $@ may be null here because of $@ assignment. | C.java:201:5:201:22 | Object obj | obj | C.java:201:12:201:21 | obj | this |
| F.java:11:5:11:7 | obj | Variable $@ may be null here as suggested by $@ null guard. | F.java:8:18:8:27 | obj | obj | F.java:9:9:9:19 | ... == ... | this |
| F.java:17:5:17:7 | obj | Variable $@ may be null here as suggested by $@ null guard. | F.java:14:18:14:27 | obj | obj | F.java:15:9:15:19 | ... == ... | this |