Examples of errors detected by the V6020 diagnostic
V6020. Division or mod division by zero.
Apache Hive
V6020 Divide by zero. The range of the 'divisor' denominator values includes zero. SqlMathUtil.java(265)
public static long divideUnsignedLong(long dividend, long divisor) {
if (divisor < 0L) {
/*some comments*/
return (compareUnsignedLong(dividend, divisor)) < 0 ? 0L : 1L;
}
if (dividend >= 0) { // Both inputs non-negative
return dividend / divisor; // <=
} else {
....
}
}
Similar errors can be found in some other places:
- V6020 Mod by zero. The range of the 'divisor' denominator values includes zero. SqlMathUtil.java(309)
- V6020 Divide by zero. The range of the 'divisor' denominator values includes zero. SqlMathUtil.java(276)
- V6020 Divide by zero. The range of the 'divisor' denominator values includes zero. SqlMathUtil.java(312)
ELKI
V6020 Divide by zero. The range of the 'referenceSetSize' denominator values includes zero. PreDeConNeighborPredicate.java(138)
protected PreDeConModel computeLocalModel(DoubleDBIDList neighbors, ....) {
final int referenceSetSize = neighbors.size();
....
// Shouldn't happen:
if(referenceSetSize < 0) {
LOG.warning("Empty reference set –
should at least include the query point!");
return new PreDeConModel(Integer.MAX_VALUE, DBIDUtil.EMPTYDBIDS);
}
....
for(int d = 0; d < dim; d++) {
s[d] /= referenceSetSize;
mvVar.put(s[d]);
}
....
}