summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustaf Lundh <gustaf.lundh@sonyericsson.com>2011-09-20 11:40:13 +0200
committerMartin Fick <mfick@codeaurora.org>2011-12-19 10:44:47 -0700
commit500270b4691b6fff9dd657659f291c8d80f88afe (patch)
tree60a66589043f2dd798940f7c34a19d6642aa2eb1
parent5878c9d14b86cb89da5d55365e9ec4964daee73c (diff)
Fix: Gerrit cannot display Change with non-resolvable Merge Commit
The commit 6fd52badf224e91dd23b6a859d62334672b70803 introduces support for displaying the resolved merge result in in uploaded merge commits. However, if the merge commit introduces a merge that is not resolvable but JGIT (I.e. CrissCross merges), the automatic merge would fail, throw an unhandled IOException, effectively not allowing Gerrit to display the change page at all. This fix allows gerrit to catch these exception, allowing the Change to still be reachable through the WebUI. Change-Id: I26fbe60695be2c8ec232b50703c5395a0493d4de
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
index 2986a72899..0bb4bccd57 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
@@ -256,7 +256,14 @@ class PatchListLoader extends EntryCreator<PatchListKey, PatchList> {
DirCache dc = DirCache.newInCore();
m.setDirCache(dc);
- if (m.merge(b.getParents())) {
+ boolean couldMerge = false;
+ try {
+ couldMerge = m.merge(b.getParents());
+ } catch (IOException e) {
+ //
+ }
+
+ if (couldMerge) {
treeId = m.getResultTreeId();
} else {