aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java
index e27d9eca168..5a86495495d 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java
@@ -107,14 +107,16 @@ public class SourcePersister implements ScanPersister {
session.commit();
} else {
// Update only if data_hash has changed or if src_hash is missing (progressive migration)
- if (!dataHash.equals(previousDto.getDataHash()) || !metadata.hash().equals(previousDto.getSrcHash())) {
+ boolean binaryDataUpdated = !dataHash.equals(previousDto.getDataHash());
+ boolean srcHashUpdated = !metadata.hash().equals(previousDto.getSrcHash());
+ if (binaryDataUpdated || srcHashUpdated) {
previousDto
.setBinaryData(data)
.setDataHash(dataHash)
.setSrcHash(metadata.hash())
.setLineHashes(lineHashesAsMd5Hex(inputFile));
- // Optimization do not change updated at when updating src_hash to avoid indexation by E/S
- if (!dataHash.equals(previousDto.getDataHash())) {
+ // Optimization only change updated at when updating binary data to avoid unecessary indexation by E/S
+ if (binaryDataUpdated) {
previousDto.setUpdatedAt(0L);
}
mapper.update(previousDto);