summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Kempin <ekempin@google.com>2017-05-11 11:54:23 +0200
committerPaladox none <thomasmulhall410@yahoo.com>2017-06-15 22:04:42 +0000
commit8b655a7a4bae679e5a2f5405b24e17491eed4230 (patch)
tree495b8ba4265dc060f463c84d10b790c786047b76
parentd0b688d3ad3c72b6a07627ca689fade3a6257471 (diff)
Files: Fix NPE when old patch set is not found
Bug: Issue 6176 Bug: Issue 6519 Change-Id: I27d04d90271297520958265affbfecc2e0befe48 Signed-off-by: Edwin Kempin <ekempin@google.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
index 16f2e5feaf..dd584cf26d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
@@ -29,6 +29,7 @@ import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.extensions.restapi.RestView;
import com.google.gerrit.reviewdb.client.Account;
+import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
@@ -259,13 +260,18 @@ public class Files implements ChildCollection<RevisionResource, FileResource> {
ObjectReader reader = git.newObjectReader();
RevWalk rw = new RevWalk(reader);
TreeWalk tw = new TreeWalk(reader)) {
- PatchList oldList = patchListCache.get(
- resource.getChange(),
- psUtil.get(db.get(), resource.getNotes(), old));
+ Change change = resource.getChange();
+ PatchSet patchSet = psUtil.get(db.get(), resource.getNotes(), old);
+ if (patchSet == null) {
+ throw new PatchListNotAvailableException(
+ String.format(
+ "patch set %s of change %s not found",
+ old.get(), change.getId().get()));
+ }
+
+ PatchList oldList = patchListCache.get(change, patchSet);
- PatchList curList = patchListCache.get(
- resource.getChange(),
- resource.getPatchSet());
+ PatchList curList = patchListCache.get(change, resource.getPatchSet());
int sz = paths.size();
List<String> pathList = Lists.newArrayListWithCapacity(sz);