private boolean modifyOne(Change.Id changeId) throws Exception { ChangeResource changeRsrc = changesCollection.parse(changeId); boolean ok = true; // Remove reviewers // DeleteReviewer delete = deleteReviewerProvider.get(); for (Account.Id reviewer : toRemove) { ReviewerResource rsrc = reviewerFactory.create(changeRsrc, reviewer); String error = null; try { delete.apply(rsrc, new DeleteReviewer.Input()); } catch (ResourceNotFoundException e) { error = String.format("could not remove %s: not found", reviewer); } catch (Exception e) { error = String.format("could not remove %s: %s", reviewer, e.getMessage()); } if (error != null) { ok = false; writeError("error", error); } } // Add reviewers // PostReviewers post = postReviewersProvider.get(); for (String reviewer : toAdd) { AddReviewerInput input = new AddReviewerInput(); input.reviewer = reviewer; input.confirmed = true; String error; try { error = post.apply(changeRsrc, input).error; } catch (Exception e) { error = String.format("could not add %s: %s", reviewer, e.getMessage()); } if (error != null) { ok = false; writeError("error", error); } } return ok; }