From 41dd02a437c174ed71fd6c8b3d76000bbbcbc3bd Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 17 Jun 2014 10:54:22 -0400
Subject: [PATCH] Fix WAR web.xml generation regression
---
src/main/java/com/gitblit/tickets/TicketNotifier.java | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/tickets/TicketNotifier.java b/src/main/java/com/gitblit/tickets/TicketNotifier.java
index 6ff76de..07371b1 100644
--- a/src/main/java/com/gitblit/tickets/TicketNotifier.java
+++ b/src/main/java/com/gitblit/tickets/TicketNotifier.java
@@ -204,7 +204,9 @@
} catch (Exception e) {
Logger.getLogger(getClass()).error("failed to get changed paths", e);
} finally {
- repo.close();
+ if (repo != null) {
+ repo.close();
+ }
}
String compareUrl = ticketService.getCompareUrl(ticket, base, patchset.tip);
@@ -520,9 +522,16 @@
//
// Direct TO recipients
+ // reporter & responsible
//
+ Set<String> tos = new TreeSet<String>();
+ tos.add(ticket.createdBy);
+ if (!StringUtils.isEmpty(ticket.responsible)) {
+ tos.add(ticket.responsible);
+ }
+
Set<String> toAddresses = new TreeSet<String>();
- for (String name : ticket.getParticipants()) {
+ for (String name : tos) {
UserModel user = userManager.getUserModel(name);
if (user != null && !user.disabled) {
if (!StringUtils.isEmpty(user.emailAddress)) {
@@ -536,12 +545,16 @@
}
}
}
- mailing.setRecipients(toAddresses);
//
// CC recipients
//
Set<String> ccs = new TreeSet<String>();
+
+ // repository owners
+ if (!ArrayUtils.isEmpty(repository.owners)) {
+ ccs.addAll(repository.owners);
+ }
// cc users mentioned in last comment
Change lastChange = ticket.changes.get(ticket.changes.size() - 1);
@@ -581,6 +594,14 @@
}
ccAddresses.addAll(settings.getStrings(Keys.mail.mailingLists));
+ // respect the author's email preference
+ UserModel lastAuthor = userManager.getUserModel(lastChange.author);
+ if (!lastAuthor.getPreferences().isEmailMeOnMyTicketChanges()) {
+ toAddresses.remove(lastAuthor.emailAddress);
+ ccAddresses.remove(lastAuthor.emailAddress);
+ }
+
+ mailing.setRecipients(toAddresses);
mailing.setCCs(ccAddresses);
}
--
Gitblit v1.9.1