mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Merge pull request #2640 from aschackmull/java/nullness-fp-tests
Java: Document two FPs with unit tests.
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user