diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java index fef7c37e8c..975874e5a6 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java @@ -149,7 +149,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { } @Override - public Change createChange(Context ctx) throws IOException { + public Change createChange(Context ctx) { change = new Change( getChangeKey(commit), changeId, @@ -163,18 +163,22 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { return change; } - private static Change.Key getChangeKey(RevCommit commit) throws IOException { + private static Change.Key getChangeKey(RevCommit commit) { List idList = commit.getFooterLines(FooterConstants.CHANGE_ID); if (!idList.isEmpty()) { return new Change.Key(idList.get(idList.size() - 1).trim()); } - ObjectId id = ChangeIdUtil.computeChangeId(commit.getTree(), commit, - commit.getAuthorIdent(), commit.getCommitterIdent(), - commit.getShortMessage()); - StringBuilder changeId = new StringBuilder(); - changeId.append("I").append(ObjectId.toString(id)); - return new Change.Key(changeId.toString()); + try { + ObjectId id = ChangeIdUtil.computeChangeId(commit.getTree(), commit, + commit.getAuthorIdent(), commit.getCommitterIdent(), + commit.getShortMessage()); + StringBuilder changeId = new StringBuilder(); + changeId.append("I").append(ObjectId.toString(id)); + return new Change.Key(changeId.toString()); + } catch (IOException e) { + throw new IllegalStateException(e); + } } public Change getChange() { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java index 522ee8580c..4280f43bef 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java @@ -236,7 +236,7 @@ public class CherryPickChange { ObjectInserter oi, Project.NameKey project, CodeReviewCommit cherryPickCommit, String refName, IdentifiedUser identifiedUser, String topic, Branch.NameKey sourceBranch) - throws RestApiException, UpdateException, OrmException, IOException { + throws RestApiException, UpdateException, OrmException { Change.Id changeId = new Change.Id(seq.nextChangeId()); ChangeInserter ins = changeInserterFactory.create( changeId, cherryPickCommit, refName) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java index e1d3205994..3e0c67cd81 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/BatchUpdate.java @@ -231,7 +231,7 @@ public class BatchUpdate implements AutoCloseable { } public abstract static class InsertChangeOp extends Op { - public abstract Change createChange(Context ctx) throws IOException; + public abstract Change createChange(Context ctx); } private static class ChainedReceiveCommands { @@ -481,7 +481,7 @@ public class BatchUpdate implements AutoCloseable { return this; } - public BatchUpdate insertChange(InsertChangeOp op) throws IOException { + public BatchUpdate insertChange(InsertChangeOp op) { Context ctx = new Context(); Change c = op.createChange(ctx); checkArgument(!newChanges.containsKey(c.getId()), diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java index e636e32d5d..86c78bb03d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java @@ -1751,8 +1751,8 @@ public class ReceiveCommits { ListenableFuture future = changeUpdateExector.submit( requestScopePropagator.wrap(new Callable() { @Override - public Void call() throws IOException, OrmException, - RestApiException, UpdateException { + public Void call() throws OrmException, RestApiException, + UpdateException { if (caller == Thread.currentThread()) { insertChange(ReceiveCommits.this.db); } else { @@ -1768,7 +1768,7 @@ public class ReceiveCommits { } private void insertChange(ReviewDb threadLocalDb) - throws IOException, OrmException, RestApiException, UpdateException { + throws OrmException, RestApiException, UpdateException { final PatchSet ps = ins.setGroups(groups).getPatchSet(); final Account.Id me = user.getAccountId(); final List footerLines = commit.getFooterLines();