summaryrefslogtreecommitdiffstats
path: root/sonar-core/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-core/src/main')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java
index 652b27c07e2..20b78655d1c 100644
--- a/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java
+++ b/sonar-core/src/main/java/org/sonar/core/issue/tracking/BlockRecognizer.java
@@ -77,7 +77,7 @@ class BlockRecognizer<RAW extends Trackable, BASE extends Trackable> {
}
// Check if remaining number of lines exceeds threshold. It avoids processing too many combinations.
- if (basesByLine.keySet().size() * rawsByLine.keySet().size() >= 250_000) {
+ if (isOverLimit(basesByLine.keySet().size(), rawsByLine.keySet().size())) {
return;
}
@@ -97,6 +97,10 @@ class BlockRecognizer<RAW extends Trackable, BASE extends Trackable> {
}
}
+ static boolean isOverLimit(long a, long b) {
+ return Math.multiplyExact(a, b) >= 250_000;
+ }
+
/**
* @param startLineA number of line from first version of text (numbering starts from 1)
* @param startLineB number of line from second version of text (numbering starts from 1)