diff options
author | Edwin Kempin <ekempin@google.com> | 2017-05-11 11:54:23 +0200 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2017-06-15 22:04:42 +0000 |
commit | 8b655a7a4bae679e5a2f5405b24e17491eed4230 (patch) | |
tree | 495b8ba4265dc060f463c84d10b790c786047b76 | |
parent | d0b688d3ad3c72b6a07627ca689fade3a6257471 (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.java | 18 |
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); |