A | B | C | D | E | F | G | H | I | J | K | L | M | N | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Project | Finding | DMMC | GrouMiner | Jadet | Tikanga | MUDetect | MUDetectXP | |||||||
2 | closure | 0 | false positive | false positive | false positive | false positive | analysis (interprocedural) | iteration in transitive call | true positive | ||||||
3 | 1 | false positive | false positive | false positive | false positive | uncommon | size() vs. hasNext() | true positive | |||||||
4 | 2 | false positive | false positive | false positive | true positive | uncommon | isEmpty() vs. hasNext() | true positive | |||||||
5 | 3 | false positive | false positive | false positive | false positive | uncommon | hasNext() again | true positive | |||||||
6 | 4 | false positive | false positive | false positive | false positive | uncommon | hasNext() again | true positive | |||||||
7 | 5 | false positive | false positive | false positive | false positive | uncommon | hasNext() again | true positive | |||||||
8 | 6 | false positive | false positive | false positive | true positive | true positive | true positive | ||||||||
9 | 7 | false positive | false positive | false positive | false positive | true positive | true positive | ||||||||
10 | 8 | true positive | false positive | false positive | false positive | uncommon | hasNext() again | false positive | |||||||
11 | 9 | false positive | false positive | false positive | false positive | uncommon | size() vs. hasNext() | false positive | |||||||
12 | 10 | false positive | false positive | false positive | false positive | true positive | false positive | ||||||||
13 | 11 | false positive | false positive | false positive | false positive | true positive | false positive | ||||||||
14 | 12 | false positive | false positive | false positive | false positive | true positive | false positive | ||||||||
15 | 13 | true positive | false positive | false positive | false positive | true positive | true positive | ||||||||
16 | 14 | false positive | false positive | false positive | false positive | uncommon | isEmpty() vs. hasNext() | false positive | |||||||
17 | 15 | false positive | false positive | false positive | false positive | uncommon | size() vs. hasNext() | false positive | |||||||
18 | 16 | false positive | false positive | false positive | false positive | true positive | true positive | ||||||||
19 | 17 | false positive | false positive | false positive | false positive | uncommon | size() vs. hasNext() | true positive | |||||||
20 | 18 | false positive | false positive | false positive | false positive | true positive | false positive | ||||||||
21 | 19 | false positive | false positive | false positive | false positive | uncommon | size() vs. hasNext() | ||||||||
22 | itext | 0 | true positive | false positive | false positive | false positive | true positive | true positive | |||||||
23 | 1 | true positive | false positive | false positive | false positive | true positive | true positive | ||||||||
24 | 2 | true positive | false positive | false positive | false positive | true positive | true positive | ||||||||
25 | 3 | false positive | false positive | false positive | false positive | uncommon | true positive | ||||||||
26 | 4 | false positive | false positive | false positive | false positive | uncommon | false positive | ||||||||
27 | 5 | false positive | false positive | true positive | false positive | uncommon | false positive | ||||||||
28 | 6 | false positive | false positive | false positive | false positive | mapping | non-optimal mapping | false positive | |||||||
29 | 7 | false positive | false positive | false positive | false positive | true positive | true positive | ||||||||
30 | 8 | false positive | false positive | false positive | false positive | analysis (implicit) | get() != null -> getAsString() != null | false positive | |||||||
31 | 9 | false positive | false positive | true positive | false positive | analysis (interprocedural) | Utilities.convertToUtf32 | false positive | |||||||
32 | 10 | false positive | false positive | true positive | false positive | true positive | false positive | ||||||||
33 | 11 | false positive | false positive | false positive | false positive | uncommon | InstHit.isHit() | false positive | |||||||
34 | 12 | false positive | false positive | false positive | true positive | mapping | non-optimal mapping | true positive | |||||||
35 | 13 | false positive | false positive | false positive | false positive | analysis (interprocedural) | static helper | false positive | |||||||
36 | 14 | false positive | false positive | false positive | false positive | analysis (interprocedural) | requering same data | false positive | |||||||
37 | 15 | true positive | false positive | false positive | false positive | uncommon | Math.min/max | false positive | |||||||
38 | 16 | true positive | false positive | false positive | false positive | uncommon | Math.min/max | false positive | |||||||
39 | 17 | false positive | false positive | false positive | uncommon | Math.min/max | false positive | ||||||||
40 | 18 | true positive | false positive | false positive | alternative | two mapped parts are parts of instances | false positive | ||||||||
41 | 19 | false positive | false positive | false positive | uncommon | false positive | |||||||||
42 | jmrtd | 0 | false positive | false positive | false positive | ||||||||||
43 | 1 | false positive | false positive | true positive | |||||||||||
44 | 2 | false positive | false positive | ||||||||||||
45 | 3 | false positive | false positive | ||||||||||||
46 | 4 | false positive | false positive | ||||||||||||
47 | 5 | false positive | false positive | ||||||||||||
48 | 6 | false positive | |||||||||||||
49 | 7 | false positive | |||||||||||||
50 | 8 | false positive | |||||||||||||
51 | 9 | false positive | |||||||||||||
52 | 10 | false positive | |||||||||||||
53 | 11 | false positive | |||||||||||||
54 | 12 | false positive | |||||||||||||
55 | 13 | false positive | |||||||||||||
56 | 14 | false positive | |||||||||||||
57 | 15 | false positive | |||||||||||||
58 | 16 | false positive | |||||||||||||
59 | 17 | false positive | |||||||||||||
60 | 18 | false positive | |||||||||||||
61 | 19 | false positive | |||||||||||||
62 | jodatime | 0 | false positive | ||||||||||||
63 | lucene | 0 | false positive | false positive | true positive | true positive | uncommon | size() vs. hasNext() | true positive | ||||||
64 | 1 | false positive | false positive | false positive | true positive | true positive | true positive | ||||||||
65 | 2 | false positive | false positive | false positive | uncommon | different exception type | true positive | ||||||||
66 | 3 | false positive | false positive | false positive | dependent | index always smaller than length | false positive | ||||||||
67 | 4 | false positive | false positive | true positive | false positive | ||||||||||
68 | 5 | false positive | false positive | dependent | index always smaller than length | false positive | |||||||||
69 | 6 | false positive | false positive | uncommon | size() again for different purpose | true positive | |||||||||
70 | 7 | false positive | false positive | uncommon | iterates backwards | false positive | |||||||||
71 | 8 | false positive | false positive | true positive | false positive | ||||||||||
72 | 9 | false positive | false positive | uncommon | size() again for different purpose | false positive | |||||||||
73 | 10 | false positive | false positive | true positive | false positive | ||||||||||
74 | 11 | false positive | false positive | true positive | false positive | ||||||||||
75 | 12 | false positive | false positive | uncommon | size() again for different purpose | ||||||||||
76 | 13 | false positive | false positive | true positive | |||||||||||
77 | 14 | false positive | false positive | true positive | |||||||||||
78 | 15 | false positive | false positive | dependent | two lists same size | ||||||||||
79 | 16 | false positive | false positive | uncommon | |||||||||||
80 | 17 | false positive | false positive | uncommon | |||||||||||
81 | 18 | false positive | false positive | uncommon | |||||||||||
82 | 19 | false positive | false positive | uncommon | hasNext() again | ||||||||||
83 | |||||||||||||||
84 | asterisk-java | 0 | false positive | false positive | false positive | uncommon | hasNext() again | false positive | |||||||
85 | 1 | false positive | false positive | uncommon | hasNext() again | false positive | |||||||||
86 | 2 | false positive | false positive | uncommon | isEmpty() instead of hasNext() | false positive | |||||||||
87 | 3 | false positive | false positive | uncommon | isEmpty() instead of hasNext() | false positive | |||||||||
88 | 4 | false positive | false positive | mapping | non-optimal mapping | false positive | |||||||||
89 | 5 | false positive | false positive | mapping | non-optimal mapping | false positive | |||||||||
90 | 6 | false positive | false positive | ||||||||||||
91 | 7 | false positive | false positive | ||||||||||||
92 | 8 | true positive | false positive | ||||||||||||
93 | 9 | true positive | false positive | ||||||||||||
94 | 10 | false positive | |||||||||||||
95 | 11 | false positive | |||||||||||||
96 | 12 | false positive | |||||||||||||
97 | 13 | false positive | |||||||||||||
98 | 14 | false positive | |||||||||||||
99 | 15 | false positive | |||||||||||||
100 | 16 | false positive | |||||||||||||
101 | 17 | false positive | |||||||||||||
102 | 18 | false positive | |||||||||||||
103 | 19 | false positive | |||||||||||||
104 | bcel | 0 | false positive | false positive | false positive | false positive | uncommon | instruction visitor | false positive | ||||||
105 | 1 | false positive | false positive | false positive | false positive | uncommon | instruction visitor | ||||||||
106 | 2 | false positive | false positive | false positive | false positive | uncommon | instruction visitor | ||||||||
107 | 3 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
108 | 4 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
109 | 5 | false positive | false positive | false positive | uncommon | missing order between branches | |||||||||
110 | 6 | false positive | false positive | false positive | uncommon | missing order between branches | |||||||||
111 | 7 | false positive | false positive | false positive | uncommon | Collection.add() before size() | |||||||||
112 | 8 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
113 | 9 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
114 | 10 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
115 | 11 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
116 | 12 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
117 | 13 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
118 | 14 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
119 | 15 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
120 | 16 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
121 | 17 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
122 | 18 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
123 | 19 | false positive | false positive | false positive | uncommon | instruction visitor | |||||||||
124 | chensun | 0 | false positive | false positive | false positive | false positive | dependent | entrySet instead of Map | false positive | ||||||
125 | 1 | false positive | false positive | true positive | false positive | analysis (interprocedural) | closeStatement vs. closePreparedStatement | false positive | |||||||
126 | 2 | false positive | false positive | true positive | uncommon | executeQuery vs executeUpdate | false positive | ||||||||
127 | 3 | false positive | true positive | false positive | uncommon | executeQuery vs executeUpdate | false positive | ||||||||
128 | 4 | false positive | false positive | true positive | uncommon | setInt vs. setString | true positive | ||||||||
129 | 5 | false positive | false positive | true positive | true positive | false positive | |||||||||
130 | 6 | false positive | false positive | false positive | uncommon | executeQuery vs executeUpdate | false positive | ||||||||
131 | 7 | false positive | false positive | false positive | uncommon | PreparedStatement.executeQuery() vs. Statement.executeQuery(String) | true positive | ||||||||
132 | 8 | false positive | false positive | mapping | non-optimal mapping | true positive | |||||||||
133 | 9 | false positive | true positive | uncommon | setInt vs. setString | true positive | |||||||||
134 | 10 | false positive | false positive | uncommon | executeQuery vs executeUpdate | false positive | |||||||||
135 | 11 | false positive | false positive | true positive | false positive | ||||||||||
136 | 12 | false positive | false positive | uncommon | size() for output (controls nothing) | true positive | |||||||||
137 | 13 | false positive | false positive | uncommon | size() for output (controls nothing) | true positive | |||||||||
138 | 14 | false positive | false positive | true positive | false positive | ||||||||||
139 | 15 | false positive | false positive | true positive | false positive | ||||||||||
140 | 16 | false positive | false positive | uncommon | only size() check matched from much larger pattern | false positive | |||||||||
141 | 17 | false positive | false positive | true positive | false positive | ||||||||||
142 | 18 | false positive | false positive | true positive | false positive | ||||||||||
143 | 19 | false positive | false positive | true positive | true positive | ||||||||||
144 | jigsaw | 0 | false positive | false positive | true positive | inside | local variable is assign to field later | ||||||||
145 | 1 | false positive | false positive | false positive | analysis (control flow) | catch -> finally despite return | |||||||||
146 | 2 | false positive | false positive | false positive | true positive | ||||||||||
147 | 3 | false positive | false positive | false positive | analysis (control flow) | catch -> finally despite return | |||||||||
148 | 4 | false positive | false positive | false positive | analysis (implicit) | instanceof implied not null | |||||||||
149 | 5 | false positive | false positive | false positive | analysis (interprocedural) | getter guarantees not null | |||||||||
150 | 6 | false positive | false positive | false positive | uncommon | ||||||||||
151 | 7 | false positive | false positive | false positive | uncommon | ||||||||||
152 | 8 | false positive | false positive | false positive | analysis (control flow) | nested tries with finallies | |||||||||
153 | 9 | false positive | false positive | false positive | analysis (control flow) | fancy stuff in the method breaks order analysis | |||||||||
154 | 10 | false positive | false positive | false positive | uncommon | size() again for different reason | |||||||||
155 | 11 | false positive | false positive | false positive | dependent | size of multiple arrays equal | |||||||||
156 | 12 | false positive | false positive | true positive | |||||||||||
157 | 13 | false positive | false positive | uncommon | |||||||||||
158 | 14 | false positive | false positive | uncommon | |||||||||||
159 | 15 | false positive | false positive | true positive | |||||||||||
160 | 16 | false positive | false positive | uncommon | size() vs. hasMoreElements() | ||||||||||
161 | 17 | false positive | false positive | uncommon | hasMoreElements() vs. hasMoreTokens() | ||||||||||
162 | 18 | false positive | false positive | uncommon | No setLayout() | ||||||||||
163 | 19 | false positive | false positive | analysis (data flow) | requeries array | ||||||||||
164 | testng | 0 | true positive | false positive | false positive | true positive | true positive | true positive | |||||||
165 | 1 | false positive | false positive | false positive | false positive | analysis (control flow) | assert | false positive | |||||||
166 | 2 | false positive | false positive | false positive | false positive | analysis (control flow) | assert | false positive | |||||||
167 | 3 | false positive | false positive | false positive | false positive | analysis (control flow) | assert | false positive | |||||||
168 | 4 | true positive | true positive | false positive | false positive | analysis (control flow) | assert | false positive | |||||||
169 | 5 | false positive | false positive | false positive | false positive | uncommon | hasNext() again | true positive | |||||||
170 | 6 | false positive | false positive | false positive | false positive | uncommon | hasNext() again | false positive | |||||||
171 | 7 | false positive | false positive | false positive | false positive | uncommon | toArray() without size() | false positive | |||||||
172 | 8 | false positive | false positive | false positive | false positive | uncommon | toArray() without size() | false positive | |||||||
173 | 9 | false positive | false positive | false positive | false positive | uncommon | toArray() without size() | false positive | |||||||
174 | 10 | false positive | false positive | false positive | false positive | uncommon | false positive | ||||||||
175 | 11 | false positive | false positive | false positive | false positive | true positive | |||||||||
176 | 12 | false positive | false positive | false positive | uncommon | ||||||||||
177 | 13 | false positive | false positive | false positive | uncommon | ||||||||||
178 | 14 | false positive | false positive | false positive | uncommon | assert message vs. delta | |||||||||
179 | 15 | false positive | false positive | uncommon | assert message vs. delta | ||||||||||
180 | 16 | false positive | false positive | uncommon | push/pop | ||||||||||
181 | 17 | false positive | true positive | uncommon | push/pop | ||||||||||
182 | 18 | false positive | false positive | uncommon | push/pop | ||||||||||
183 | 19 | false positive | false positive | analysis (interprocedural) | add() in private method | ||||||||||
184 | 149 | false positive | 152 | false positive | 83 | false positive | 78 | false positive | 1 | alternative | 60 | false positive | |||
185 | 12 | true positive | 4 | true positive | 8 | true positive | 7 | true positive | 8 | analysis (control flow) | 31 | true positive | |||
186 | 0 | 0 | 0 | 0 | 1 | analysis (data flow) | 0 | ||||||||
187 | 0 | 0 | 0 | 0 | 2 | analysis (implicit) | 0 | ||||||||
188 | 0 | 0 | 0 | 0 | 7 | analysis (interprocedural) | 0 | ||||||||
189 | 0 | 0 | 0 | 0 | 5 | dependent | 0 | ||||||||
190 | 0 | 0 | 0 | 0 | 1 | inside | 0 | ||||||||
191 | 0 | 0 | 0 | 0 | 5 | mapping | 0 | ||||||||
192 | 0 | 0 | 0 | 0 | 32 | true positive | 0 | ||||||||
193 | 0 | 0 | 0 | 0 | 84 | uncommon | 0 | ||||||||
194 | 161 | 156 | 91 | 85 | 146 | 91 | |||||||||
195 | 12 | true positives | 4 | true positives | 8 | true positives | 7 | true positives | 32 | true positives | 31 | true positives | |||
196 | 7.5% | precision | 2.6% | precision | 8.8% | precision | 8.2% | precision | 21.9% | precision | 34.1% | precision |