From b32fa68832412374a1a905525a4e395d35b4d1ae Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 20 Apr 2016 10:06:09 -0400
Subject: [PATCH] Use getInteger not getFilesize, fixes #1049
---
src/main/java/com/gitblit/tickets/ITicketService.java | 48 +++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/gitblit/tickets/ITicketService.java b/src/main/java/com/gitblit/tickets/ITicketService.java
index 668d0bc..e831003 100644
--- a/src/main/java/com/gitblit/tickets/ITicketService.java
+++ b/src/main/java/com/gitblit/tickets/ITicketService.java
@@ -36,6 +36,7 @@
import com.gitblit.IStoredSettings;
import com.gitblit.Keys;
import com.gitblit.extensions.TicketHook;
+import com.gitblit.manager.IManager;
import com.gitblit.manager.INotificationManager;
import com.gitblit.manager.IPluginManager;
import com.gitblit.manager.IRepositoryManager;
@@ -47,6 +48,7 @@
import com.gitblit.models.TicketModel.Change;
import com.gitblit.models.TicketModel.Field;
import com.gitblit.models.TicketModel.Patchset;
+import com.gitblit.models.TicketModel.PatchsetType;
import com.gitblit.models.TicketModel.Status;
import com.gitblit.tickets.TicketIndexer.Lucene;
import com.gitblit.utils.DeepCopier;
@@ -63,7 +65,7 @@
* @author James Moger
*
*/
-public abstract class ITicketService {
+public abstract class ITicketService implements IManager {
public static final String SETTING_UPDATE_DIFFSTATS = "migration.updateDiffstats";
@@ -176,12 +178,14 @@
* Start the service.
* @since 1.4.0
*/
+ @Override
public abstract ITicketService start();
/**
* Stop the service.
* @since 1.4.0
*/
+ @Override
public final ITicketService stop() {
indexer.close();
ticketsCache.invalidateAll();
@@ -670,21 +674,24 @@
Repository db = null;
try {
db = repositoryManager.getRepository(repository.name);
- TicketMilestone milestone = getMilestone(repository, oldName);
+ TicketMilestone tm = getMilestone(repository, oldName);
+ if (tm == null) {
+ return false;
+ }
StoredConfig config = db.getConfig();
config.unsetSection(MILESTONE, oldName);
- config.setString(MILESTONE, newName, STATUS, milestone.status.name());
- config.setString(MILESTONE, newName, COLOR, milestone.color);
- if (milestone.due != null) {
+ config.setString(MILESTONE, newName, STATUS, tm.status.name());
+ config.setString(MILESTONE, newName, COLOR, tm.color);
+ if (tm.due != null) {
config.setString(MILESTONE, newName, DUE,
- new SimpleDateFormat(DUE_DATE_PATTERN).format(milestone.due));
+ new SimpleDateFormat(DUE_DATE_PATTERN).format(tm.due));
}
config.save();
milestonesCache.remove(repository.name);
TicketNotifier notifier = createNotifier();
- for (QueryResult qr : milestone.tickets) {
+ for (QueryResult qr : tm.tickets) {
Change change = new Change(createdBy);
change.setField(Field.milestone, newName);
TicketModel ticket = updateTicket(repository, qr.number, change);
@@ -738,6 +745,9 @@
Repository db = null;
try {
TicketMilestone tm = getMilestone(repository, milestone);
+ if (tm == null) {
+ return false;
+ }
db = repositoryManager.getRepository(repository.name);
StoredConfig config = db.getConfig();
config.unsetSection(MILESTONE, milestone);
@@ -1204,6 +1214,30 @@
TicketModel revisedTicket = updateTicket(repository, ticket.number, deletion);
return revisedTicket;
}
+
+ /**
+ * Deletes a patchset from a ticket.
+ *
+ * @param ticket
+ * @param patchset
+ * the patchset to delete (should be the highest revision)
+ * @param userName
+ * the user deleting the commit
+ * @return the revised ticket if the deletion was successful
+ * @since 1.8.0
+ */
+ public final TicketModel deletePatchset(TicketModel ticket, Patchset patchset, String userName) {
+ Change deletion = new Change(userName);
+ deletion.patchset = new Patchset();
+ deletion.patchset.number = patchset.number;
+ deletion.patchset.rev = patchset.rev;
+ deletion.patchset.type = PatchsetType.Delete;
+
+ RepositoryModel repository = repositoryManager.getRepositoryModel(ticket.repository);
+ TicketModel revisedTicket = updateTicket(repository, ticket.number, deletion);
+
+ return revisedTicket;
+ }
/**
* Commit a ticket change to the repository.
--
Gitblit v1.9.1