Merge "Fix caching of negative file diffs"
diff --git a/java/com/google/gerrit/server/patch/filediff/FileDiffCacheImpl.java b/java/com/google/gerrit/server/patch/filediff/FileDiffCacheImpl.java
index a67f221..92c3b39 100644
--- a/java/com/google/gerrit/server/patch/filediff/FileDiffCacheImpl.java
+++ b/java/com/google/gerrit/server/patch/filediff/FileDiffCacheImpl.java
@@ -97,7 +97,7 @@
persist(DIFF, FileDiffCacheKey.class, FileDiffOutput.class)
.maximumWeight(10 << 20)
.weigher(FileDiffWeigher.class)
- .version(7)
+ .version(8)
.keySerializer(FileDiffCacheKey.Serializer.INSTANCE)
.valueSerializer(FileDiffOutput.Serializer.INSTANCE)
.loader(FileDiffLoader.class);
diff --git a/java/com/google/gerrit/server/patch/filediff/FileDiffOutput.java b/java/com/google/gerrit/server/patch/filediff/FileDiffOutput.java
index 3c6d746..76f6eb7 100644
--- a/java/com/google/gerrit/server/patch/filediff/FileDiffOutput.java
+++ b/java/com/google/gerrit/server/patch/filediff/FileDiffOutput.java
@@ -130,9 +130,16 @@
.build();
}
+ /**
+ * Create a negative file diff. We use this to cache negative diffs for entries that result in
+ * timeouts.
+ */
public static FileDiffOutput createNegative(
String filePath, ObjectId oldCommitId, ObjectId newCommitId) {
- return empty(filePath, oldCommitId, newCommitId).toBuilder().build();
+ return empty(filePath, oldCommitId, newCommitId)
+ .toBuilder()
+ .negative(Optional.of(true))
+ .build();
}
/** Returns true if this entity represents an unchanged file between two commits. */