diff options
author | Tomas Daarstad <tomas.daarstad@tieto.com> | 2012-02-14 12:02:19 +0100 |
---|---|---|
committer | Tomas Daarstad <tomas.daarstad@tieto.com> | 2012-02-14 12:02:27 +0100 |
commit | ef49dc280425bceea8dd0b5f6644b8a11471834b (patch) | |
tree | f33d6e95b26737eea15cde93ca3bd41fdefe0310 | |
parent | adad008c04d0cabef4dee1e002fbdaad52619ee2 (diff) | |
parent | 3c2ed21ff388e3b10fe67c8359ae2239ba71466f (diff) |
Merge remote-tracking branch 'origin/corrections/qtqainfra-382' into integration/v2.2.1
Change-Id: I98c5d958e79de9f7588e57b2196bf79e472d9fbe
3 files changed, 21 insertions, 5 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoFactory.java index b62dd8ff3d..a686a095e0 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoFactory.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoFactory.java @@ -54,6 +54,9 @@ public class ChangeSetInfoFactory { final List<ChangeSetElement> changeSetElements = db.changeSetElements().byChangeSet(csId).toList(); // Our data source will be the last change in the ChangeSet // + if(changeSetElements.isEmpty()){ + throw new ChangeSetInfoNotAvailableException(); + } final Change.Id changeId = changeSetElements.get(changeSetElements.size() - 1).getChangeId(); final Change change = db.changes().get(changeId); final PatchSet patchSet = db.patchSets().get(change.currentPatchSetId()); diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoNotAvailableException.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoNotAvailableException.java index 90426304a4..902c444e7b 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoNotAvailableException.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoNotAvailableException.java @@ -16,9 +16,14 @@ package com.google.gerrit.httpd.rpc.topic; public final class ChangeSetInfoNotAvailableException extends Exception { private static final long serialVersionUID = 1L; + public static final String MESSAGE = "No change set elements in list"; public ChangeSetInfoNotAvailableException(Exception cause) { super(cause); } + public ChangeSetInfoNotAvailableException() { + super(MESSAGE); + } + } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java index f1e2b08454..960af5c9a3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java @@ -67,6 +67,8 @@ import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.util.Base64; import org.eclipse.jgit.util.NB; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.ArrayList; @@ -79,6 +81,8 @@ import java.util.regex.Matcher; public class ChangeUtil { private static int uuidPrefix; private static int uuidSeq; + private static final Logger log = LoggerFactory + .getLogger(ChangeUtil.class); /** * Generate a new unique identifier for change message entities. @@ -280,11 +284,15 @@ public class ChangeUtil { } db.patchSetApprovals().update(approvals); - // Email the reviewers - final AbandonedSender cm = senderFactory.create(updatedChange); - cm.setFrom(user.getAccountId()); - cm.setChangeMessage(cmsg); - cm.send(); + if (senderFactory != null) { + // Email the reviewers + final AbandonedSender cm = senderFactory.create(updatedChange); + cm.setFrom(user.getAccountId()); + cm.setChangeMessage(cmsg); + cm.send(); + } else { + log.error("Abandoned sender factory is null!"); + } hooks.doChangeAbandonedHook(updatedChange, user.getAccount(), message); } |