mirror of
https://github.com/github/codeql.git
synced 2026-04-25 16:55:19 +02:00
Address more parts of Anders review.
This commit is contained in:
committed by
Anders Schack-Mulligen
parent
812a0bcb16
commit
9ef61bd43c
@@ -3,6 +3,14 @@ public class A {
|
||||
public static void sink(Object o) {
|
||||
}
|
||||
|
||||
public Object flowThrough(Object o, boolean cond) {
|
||||
if (cond) {
|
||||
return o;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void callSinkIfTrue(Object o, boolean cond) {
|
||||
if (cond) {
|
||||
sink(o);
|
||||
@@ -49,6 +57,7 @@ public class A {
|
||||
callSinkIfFalse(new Integer(2), true);
|
||||
callSinkFromLoop(new Integer(3), false);
|
||||
localCallSensitivity(new Integer(4), false);
|
||||
sink(flowThrough(new Integer(4), false));
|
||||
// should exhibit flow
|
||||
callSinkIfTrue(new Integer(1), true);
|
||||
callSinkIfFalse(new Integer(2), false);
|
||||
@@ -57,6 +66,7 @@ public class A {
|
||||
localCallSensitivity2(new Integer(4), true, true);
|
||||
localCallSensitivity2(new Integer(4), false, true);
|
||||
localCallSensitivity2(new Integer(4), true, false);
|
||||
sink(flowThrough(new Integer(4), true));
|
||||
// expected false positive
|
||||
localCallSensitivity2(new Integer(4), false, false);
|
||||
}
|
||||
@@ -69,11 +79,13 @@ public class A {
|
||||
callSinkIfFalse(new Integer(5), t);
|
||||
callSinkFromLoop(new Integer(6), f);
|
||||
localCallSensitivity(new Integer(4), f);
|
||||
sink(flowThrough(new Integer(4), f));
|
||||
// should exhibit flow
|
||||
callSinkIfTrue(new Integer(4), t);
|
||||
callSinkIfFalse(new Integer(5), f);
|
||||
callSinkFromLoop(new Integer(6), t);
|
||||
localCallSensitivity(new Integer(4), t);
|
||||
sink(flowThrough(new Integer(4), t));
|
||||
}
|
||||
|
||||
public void f3(InterfaceA b) {
|
||||
|
||||
42
java/ql/test/library-tests/dataflow/call-sensitivity/A2.java
Normal file
42
java/ql/test/library-tests/dataflow/call-sensitivity/A2.java
Normal file
@@ -0,0 +1,42 @@
|
||||
public class A2 {
|
||||
|
||||
public static void sink(Object o) {
|
||||
}
|
||||
|
||||
public void m() {
|
||||
|
||||
}
|
||||
|
||||
public void callsite(InterfaceB intF) {
|
||||
B b = new B();
|
||||
// in both possible implementations of foo, this callsite is relevant
|
||||
// in IntA, it improves virtual dispatch,
|
||||
// and in IntB, it improves the dataflow analysis.
|
||||
intF.foo(b, new Integer(5), false);
|
||||
}
|
||||
|
||||
private class B extends A2 {
|
||||
@Override
|
||||
public void m() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private class IntA implements InterfaceB {
|
||||
@Override
|
||||
public void foo(A2 obj, Object o, boolean cond) {
|
||||
obj.m();
|
||||
sink(o);
|
||||
}
|
||||
}
|
||||
|
||||
private class IntB implements InterfaceB {
|
||||
@Override
|
||||
public void foo(A2 obj, Object o, boolean cond) {
|
||||
if (cond) {
|
||||
sink(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public interface InterfaceB {
|
||||
public void foo(A2 a, Object o, boolean cond);
|
||||
}
|
||||
@@ -1,76 +1,91 @@
|
||||
edges
|
||||
| A.java:6:29:6:36 | o [ : Number] | A.java:8:9:8:9 | o |
|
||||
| A.java:12:30:12:37 | o [ : Number] | A.java:14:9:14:9 | o |
|
||||
| A.java:18:31:18:38 | o [ : Number] | A.java:20:9:20:9 | o |
|
||||
| A.java:24:35:24:42 | o [ : Number] | A.java:32:8:32:9 | o3 |
|
||||
| A.java:35:36:35:43 | o [ : Number] | A.java:43:8:43:9 | o3 |
|
||||
| A.java:35:36:35:43 | o [ : Number] | A.java:43:8:43:9 | o3 |
|
||||
| A.java:35:36:35:43 | o [ : Number] | A.java:43:8:43:9 | o3 |
|
||||
| A.java:53:18:53:31 | new Integer(...) [ : Number] | A.java:6:29:6:36 | o [ : Number] |
|
||||
| A.java:54:19:54:32 | new Integer(...) [ : Number] | A.java:12:30:12:37 | o [ : Number] |
|
||||
| A.java:55:20:55:33 | new Integer(...) [ : Number] | A.java:18:31:18:38 | o [ : Number] |
|
||||
| A.java:56:24:56:37 | new Integer(...) [ : Number] | A.java:24:35:24:42 | o [ : Number] |
|
||||
| A.java:57:25:57:38 | new Integer(...) [ : Number] | A.java:35:36:35:43 | o [ : Number] |
|
||||
| A.java:58:25:58:38 | new Integer(...) [ : Number] | A.java:35:36:35:43 | o [ : Number] |
|
||||
| A.java:59:25:59:38 | new Integer(...) [ : Number] | A.java:35:36:35:43 | o [ : Number] |
|
||||
| A.java:61:25:61:38 | new Integer(...) [ : Number] | A.java:35:36:35:43 | o [ : Number] |
|
||||
| A.java:73:18:73:31 | new Integer(...) [ : Number] | A.java:6:29:6:36 | o [ : Number] |
|
||||
| A.java:74:19:74:32 | new Integer(...) [ : Number] | A.java:12:30:12:37 | o [ : Number] |
|
||||
| A.java:75:20:75:33 | new Integer(...) [ : Number] | A.java:18:31:18:38 | o [ : Number] |
|
||||
| A.java:76:24:76:37 | new Integer(...) [ : Number] | A.java:24:35:24:42 | o [ : Number] |
|
||||
| A.java:87:20:87:33 | new Integer(...) [ : Number] | A.java:94:30:94:37 | o [ : Number] |
|
||||
| A.java:88:21:88:34 | new Integer(...) [ : Number] | A.java:101:31:101:38 | o [ : Number] |
|
||||
| A.java:89:26:89:39 | new Integer(...) [ : Number] | A.java:108:36:108:43 | o [ : Number] |
|
||||
| A.java:94:30:94:37 | o [ : Number] | A.java:96:10:96:10 | o |
|
||||
| A.java:101:31:101:38 | o [ : Number] | A.java:103:10:103:10 | o |
|
||||
| A.java:108:36:108:43 | o [ : Number] | A.java:116:9:116:10 | o3 |
|
||||
| A2.java:15:15:15:28 | new Integer(...) [ : Number] | A2.java:27:27:27:34 | o [ : Number] |
|
||||
| A2.java:27:27:27:34 | o [ : Number] | A2.java:29:9:29:9 | o |
|
||||
| A.java:14:29:14:36 | o [ : Number] | A.java:16:9:16:9 | o |
|
||||
| A.java:20:30:20:37 | o [ : Number] | A.java:22:9:22:9 | o |
|
||||
| A.java:26:31:26:38 | o [ : Number] | A.java:28:9:28:9 | o |
|
||||
| A.java:32:35:32:42 | o [ : Number] | A.java:40:8:40:9 | o3 |
|
||||
| A.java:43:36:43:43 | o [ : Number] | A.java:51:8:51:9 | o3 |
|
||||
| A.java:43:36:43:43 | o [ : Number] | A.java:51:8:51:9 | o3 |
|
||||
| A.java:43:36:43:43 | o [ : Number] | A.java:51:8:51:9 | o3 |
|
||||
| A.java:62:18:62:31 | new Integer(...) [ : Number] | A.java:14:29:14:36 | o [ : Number] |
|
||||
| A.java:63:19:63:32 | new Integer(...) [ : Number] | A.java:20:30:20:37 | o [ : Number] |
|
||||
| A.java:64:20:64:33 | new Integer(...) [ : Number] | A.java:26:31:26:38 | o [ : Number] |
|
||||
| A.java:65:24:65:37 | new Integer(...) [ : Number] | A.java:32:35:32:42 | o [ : Number] |
|
||||
| A.java:66:25:66:38 | new Integer(...) [ : Number] | A.java:43:36:43:43 | o [ : Number] |
|
||||
| A.java:67:25:67:38 | new Integer(...) [ : Number] | A.java:43:36:43:43 | o [ : Number] |
|
||||
| A.java:68:25:68:38 | new Integer(...) [ : Number] | A.java:43:36:43:43 | o [ : Number] |
|
||||
| A.java:69:20:69:33 | new Integer(...) [ : Number] | A.java:69:8:69:40 | flowThrough(...) |
|
||||
| A.java:71:25:71:38 | new Integer(...) [ : Number] | A.java:43:36:43:43 | o [ : Number] |
|
||||
| A.java:84:18:84:31 | new Integer(...) [ : Number] | A.java:14:29:14:36 | o [ : Number] |
|
||||
| A.java:85:19:85:32 | new Integer(...) [ : Number] | A.java:20:30:20:37 | o [ : Number] |
|
||||
| A.java:86:20:86:33 | new Integer(...) [ : Number] | A.java:26:31:26:38 | o [ : Number] |
|
||||
| A.java:87:24:87:37 | new Integer(...) [ : Number] | A.java:32:35:32:42 | o [ : Number] |
|
||||
| A.java:88:20:88:33 | new Integer(...) [ : Number] | A.java:88:8:88:37 | flowThrough(...) |
|
||||
| A.java:99:20:99:33 | new Integer(...) [ : Number] | A.java:106:30:106:37 | o [ : Number] |
|
||||
| A.java:100:21:100:34 | new Integer(...) [ : Number] | A.java:113:31:113:38 | o [ : Number] |
|
||||
| A.java:101:26:101:39 | new Integer(...) [ : Number] | A.java:120:36:120:43 | o [ : Number] |
|
||||
| A.java:106:30:106:37 | o [ : Number] | A.java:108:10:108:10 | o |
|
||||
| A.java:113:31:113:38 | o [ : Number] | A.java:115:10:115:10 | o |
|
||||
| A.java:120:36:120:43 | o [ : Number] | A.java:128:9:128:10 | o3 |
|
||||
nodes
|
||||
| A.java:6:29:6:36 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:8:9:8:9 | o | semmle.label | o |
|
||||
| A.java:12:30:12:37 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:14:9:14:9 | o | semmle.label | o |
|
||||
| A.java:18:31:18:38 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:20:9:20:9 | o | semmle.label | o |
|
||||
| A.java:24:35:24:42 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:32:8:32:9 | o3 | semmle.label | o3 |
|
||||
| A.java:35:36:35:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:35:36:35:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:35:36:35:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:43:8:43:9 | o3 | semmle.label | o3 |
|
||||
| A.java:53:18:53:31 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:54:19:54:32 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:55:20:55:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:56:24:56:37 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:57:25:57:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:58:25:58:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:59:25:59:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:61:25:61:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:73:18:73:31 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:74:19:74:32 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:75:20:75:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:76:24:76:37 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:87:20:87:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:88:21:88:34 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:89:26:89:39 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:94:30:94:37 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:96:10:96:10 | o | semmle.label | o |
|
||||
| A.java:101:31:101:38 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:103:10:103:10 | o | semmle.label | o |
|
||||
| A.java:108:36:108:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:116:9:116:10 | o3 | semmle.label | o3 |
|
||||
| A2.java:15:15:15:28 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A2.java:27:27:27:34 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A2.java:29:9:29:9 | o | semmle.label | o |
|
||||
| A2.java:37:10:37:10 | o | semmle.label | o |
|
||||
| A.java:14:29:14:36 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:16:9:16:9 | o | semmle.label | o |
|
||||
| A.java:20:30:20:37 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:22:9:22:9 | o | semmle.label | o |
|
||||
| A.java:26:31:26:38 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:28:9:28:9 | o | semmle.label | o |
|
||||
| A.java:32:35:32:42 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:40:8:40:9 | o3 | semmle.label | o3 |
|
||||
| A.java:43:36:43:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:43:36:43:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:43:36:43:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:51:8:51:9 | o3 | semmle.label | o3 |
|
||||
| A.java:62:18:62:31 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:63:19:63:32 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:64:20:64:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:65:24:65:37 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:66:25:66:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:67:25:67:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:68:25:68:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:69:8:69:40 | flowThrough(...) | semmle.label | flowThrough(...) |
|
||||
| A.java:69:20:69:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:71:25:71:38 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:84:18:84:31 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:85:19:85:32 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:86:20:86:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:87:24:87:37 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:88:8:88:37 | flowThrough(...) | semmle.label | flowThrough(...) |
|
||||
| A.java:88:20:88:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:99:20:99:33 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:100:21:100:34 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:101:26:101:39 | new Integer(...) [ : Number] | semmle.label | new Integer(...) [ : Number] |
|
||||
| A.java:106:30:106:37 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:108:10:108:10 | o | semmle.label | o |
|
||||
| A.java:113:31:113:38 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:115:10:115:10 | o | semmle.label | o |
|
||||
| A.java:120:36:120:43 | o [ : Number] | semmle.label | o [ : Number] |
|
||||
| A.java:128:9:128:10 | o3 | semmle.label | o3 |
|
||||
#select
|
||||
| A.java:53:18:53:31 | new Integer(...) [ : Number] | A.java:53:18:53:31 | new Integer(...) [ : Number] | A.java:8:9:8:9 | o | $@ | A.java:8:9:8:9 | o | o |
|
||||
| A.java:54:19:54:32 | new Integer(...) [ : Number] | A.java:54:19:54:32 | new Integer(...) [ : Number] | A.java:14:9:14:9 | o | $@ | A.java:14:9:14:9 | o | o |
|
||||
| A.java:55:20:55:33 | new Integer(...) [ : Number] | A.java:55:20:55:33 | new Integer(...) [ : Number] | A.java:20:9:20:9 | o | $@ | A.java:20:9:20:9 | o | o |
|
||||
| A.java:56:24:56:37 | new Integer(...) [ : Number] | A.java:56:24:56:37 | new Integer(...) [ : Number] | A.java:32:8:32:9 | o3 | $@ | A.java:32:8:32:9 | o3 | o3 |
|
||||
| A.java:57:25:57:38 | new Integer(...) [ : Number] | A.java:57:25:57:38 | new Integer(...) [ : Number] | A.java:43:8:43:9 | o3 | $@ | A.java:43:8:43:9 | o3 | o3 |
|
||||
| A.java:58:25:58:38 | new Integer(...) [ : Number] | A.java:58:25:58:38 | new Integer(...) [ : Number] | A.java:43:8:43:9 | o3 | $@ | A.java:43:8:43:9 | o3 | o3 |
|
||||
| A.java:59:25:59:38 | new Integer(...) [ : Number] | A.java:59:25:59:38 | new Integer(...) [ : Number] | A.java:43:8:43:9 | o3 | $@ | A.java:43:8:43:9 | o3 | o3 |
|
||||
| A.java:61:25:61:38 | new Integer(...) [ : Number] | A.java:61:25:61:38 | new Integer(...) [ : Number] | A.java:43:8:43:9 | o3 | $@ | A.java:43:8:43:9 | o3 | o3 |
|
||||
| A.java:73:18:73:31 | new Integer(...) [ : Number] | A.java:73:18:73:31 | new Integer(...) [ : Number] | A.java:8:9:8:9 | o | $@ | A.java:8:9:8:9 | o | o |
|
||||
| A.java:74:19:74:32 | new Integer(...) [ : Number] | A.java:74:19:74:32 | new Integer(...) [ : Number] | A.java:14:9:14:9 | o | $@ | A.java:14:9:14:9 | o | o |
|
||||
| A.java:75:20:75:33 | new Integer(...) [ : Number] | A.java:75:20:75:33 | new Integer(...) [ : Number] | A.java:20:9:20:9 | o | $@ | A.java:20:9:20:9 | o | o |
|
||||
| A.java:76:24:76:37 | new Integer(...) [ : Number] | A.java:76:24:76:37 | new Integer(...) [ : Number] | A.java:32:8:32:9 | o3 | $@ | A.java:32:8:32:9 | o3 | o3 |
|
||||
| A.java:87:20:87:33 | new Integer(...) [ : Number] | A.java:87:20:87:33 | new Integer(...) [ : Number] | A.java:96:10:96:10 | o | $@ | A.java:96:10:96:10 | o | o |
|
||||
| A.java:88:21:88:34 | new Integer(...) [ : Number] | A.java:88:21:88:34 | new Integer(...) [ : Number] | A.java:103:10:103:10 | o | $@ | A.java:103:10:103:10 | o | o |
|
||||
| A.java:89:26:89:39 | new Integer(...) [ : Number] | A.java:89:26:89:39 | new Integer(...) [ : Number] | A.java:116:9:116:10 | o3 | $@ | A.java:116:9:116:10 | o3 | o3 |
|
||||
| A2.java:15:15:15:28 | new Integer(...) [ : Number] | A2.java:15:15:15:28 | new Integer(...) [ : Number] | A2.java:29:9:29:9 | o | $@ | A2.java:29:9:29:9 | o | o |
|
||||
| A.java:62:18:62:31 | new Integer(...) [ : Number] | A.java:62:18:62:31 | new Integer(...) [ : Number] | A.java:16:9:16:9 | o | $@ | A.java:16:9:16:9 | o | o |
|
||||
| A.java:63:19:63:32 | new Integer(...) [ : Number] | A.java:63:19:63:32 | new Integer(...) [ : Number] | A.java:22:9:22:9 | o | $@ | A.java:22:9:22:9 | o | o |
|
||||
| A.java:64:20:64:33 | new Integer(...) [ : Number] | A.java:64:20:64:33 | new Integer(...) [ : Number] | A.java:28:9:28:9 | o | $@ | A.java:28:9:28:9 | o | o |
|
||||
| A.java:65:24:65:37 | new Integer(...) [ : Number] | A.java:65:24:65:37 | new Integer(...) [ : Number] | A.java:40:8:40:9 | o3 | $@ | A.java:40:8:40:9 | o3 | o3 |
|
||||
| A.java:66:25:66:38 | new Integer(...) [ : Number] | A.java:66:25:66:38 | new Integer(...) [ : Number] | A.java:51:8:51:9 | o3 | $@ | A.java:51:8:51:9 | o3 | o3 |
|
||||
| A.java:67:25:67:38 | new Integer(...) [ : Number] | A.java:67:25:67:38 | new Integer(...) [ : Number] | A.java:51:8:51:9 | o3 | $@ | A.java:51:8:51:9 | o3 | o3 |
|
||||
| A.java:68:25:68:38 | new Integer(...) [ : Number] | A.java:68:25:68:38 | new Integer(...) [ : Number] | A.java:51:8:51:9 | o3 | $@ | A.java:51:8:51:9 | o3 | o3 |
|
||||
| A.java:69:20:69:33 | new Integer(...) [ : Number] | A.java:69:20:69:33 | new Integer(...) [ : Number] | A.java:69:8:69:40 | flowThrough(...) | $@ | A.java:69:8:69:40 | flowThrough(...) | flowThrough(...) |
|
||||
| A.java:71:25:71:38 | new Integer(...) [ : Number] | A.java:71:25:71:38 | new Integer(...) [ : Number] | A.java:51:8:51:9 | o3 | $@ | A.java:51:8:51:9 | o3 | o3 |
|
||||
| A.java:84:18:84:31 | new Integer(...) [ : Number] | A.java:84:18:84:31 | new Integer(...) [ : Number] | A.java:16:9:16:9 | o | $@ | A.java:16:9:16:9 | o | o |
|
||||
| A.java:85:19:85:32 | new Integer(...) [ : Number] | A.java:85:19:85:32 | new Integer(...) [ : Number] | A.java:22:9:22:9 | o | $@ | A.java:22:9:22:9 | o | o |
|
||||
| A.java:86:20:86:33 | new Integer(...) [ : Number] | A.java:86:20:86:33 | new Integer(...) [ : Number] | A.java:28:9:28:9 | o | $@ | A.java:28:9:28:9 | o | o |
|
||||
| A.java:87:24:87:37 | new Integer(...) [ : Number] | A.java:87:24:87:37 | new Integer(...) [ : Number] | A.java:40:8:40:9 | o3 | $@ | A.java:40:8:40:9 | o3 | o3 |
|
||||
| A.java:88:20:88:33 | new Integer(...) [ : Number] | A.java:88:20:88:33 | new Integer(...) [ : Number] | A.java:88:8:88:37 | flowThrough(...) | $@ | A.java:88:8:88:37 | flowThrough(...) | flowThrough(...) |
|
||||
| A.java:99:20:99:33 | new Integer(...) [ : Number] | A.java:99:20:99:33 | new Integer(...) [ : Number] | A.java:108:10:108:10 | o | $@ | A.java:108:10:108:10 | o | o |
|
||||
| A.java:100:21:100:34 | new Integer(...) [ : Number] | A.java:100:21:100:34 | new Integer(...) [ : Number] | A.java:115:10:115:10 | o | $@ | A.java:115:10:115:10 | o | o |
|
||||
| A.java:101:26:101:39 | new Integer(...) [ : Number] | A.java:101:26:101:39 | new Integer(...) [ : Number] | A.java:128:9:128:10 | o3 | $@ | A.java:128:9:128:10 | o3 | o3 |
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
[2019-09-30 16:01:44] [ERROR] Exception running the extractor with arguments: --javacOptions -source 8 --strict-javac-errors --encoding UTF-8 --files A.java A2.java InterfaceA.java
|
||||
[2019-09-30 16:01:44] [ERROR] Exception:
|
||||
com.semmle.util.exception.ResourceError: Neither TRAP_FOLDER nor ODASA_JAVA_LAYOUT was set
|
||||
at com.semmle.extractor.java.OdasaOutput.<init>(OdasaOutput.java:95)
|
||||
at com.semmle.extractor.java.JavaExtractor.createOutput(JavaExtractor.java:443)
|
||||
at com.semmle.extractor.java.JavaExtractor.runExtractor(JavaExtractor.java:234)
|
||||
at com.semmle.extractor.java.JavaExtractor.runExtractor(JavaExtractor.java:222)
|
||||
at com.semmle.extractor.java.JavaExtractor.main(JavaExtractor.java:475)
|
||||
@@ -0,0 +1,3 @@
|
||||
[2019-09-30 16:01:44] [javac-extractor-6836] Starting extraction for:
|
||||
sun.java.command=com.semmle.extractor.java.JavaExtractor --javacOptions -source 8 --strict-javac-errors --encoding UTF-8 --files A.java A2.java InterfaceA.java
|
||||
user.dir=/home/corni/build/ql/java/ql/test/library-tests/dataflow/call-sensitivity
|
||||
@@ -0,0 +1,8 @@
|
||||
[2019-09-30 16:01:44] [ERROR] Exception running the extractor with arguments: --javacOptions -source 8 --strict-javac-errors --encoding UTF-8 --files A.java A2.java InterfaceA.java
|
||||
[2019-09-30 16:01:44] [ERROR] Exception:
|
||||
com.semmle.util.exception.ResourceError: Neither TRAP_FOLDER nor ODASA_JAVA_LAYOUT was set
|
||||
at com.semmle.extractor.java.OdasaOutput.<init>(OdasaOutput.java:95)
|
||||
at com.semmle.extractor.java.JavaExtractor.createOutput(JavaExtractor.java:443)
|
||||
at com.semmle.extractor.java.JavaExtractor.runExtractor(JavaExtractor.java:234)
|
||||
at com.semmle.extractor.java.JavaExtractor.runExtractor(JavaExtractor.java:222)
|
||||
at com.semmle.extractor.java.JavaExtractor.main(JavaExtractor.java:475)
|
||||
Reference in New Issue
Block a user