From 60848f89959d41de83dfac2a0ee20d336cd7b3f1 Mon Sep 17 00:00:00 2001 From: Gustaf Lundh Date: Tue, 20 Sep 2011 11:40:13 +0200 Subject: [PATCH] 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 --- .../com/google/gerrit/server/patch/PatchListLoader.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 { 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 {