summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Daarstad <tomas.daarstad@tieto.com>2012-02-14 12:02:19 +0100
committerTomas Daarstad <tomas.daarstad@tieto.com>2012-02-14 12:02:27 +0100
commitef49dc280425bceea8dd0b5f6644b8a11471834b (patch)
treef33d6e95b26737eea15cde93ca3bd41fdefe0310
parentadad008c04d0cabef4dee1e002fbdaad52619ee2 (diff)
parent3c2ed21ff388e3b10fe67c8359ae2239ba71466f (diff)
Merge remote-tracking branch 'origin/corrections/qtqainfra-382' into integration/v2.2.1
-rw-r--r--gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoFactory.java3
-rw-r--r--gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/topic/ChangeSetInfoNotAvailableException.java5
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java18
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);
}