summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java
index f466231323..adec292ac2 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/DeleteDraftPatchSet.java
@@ -44,7 +44,7 @@ public class DeleteDraftPatchSet implements Callable<ReviewResult> {
private final ChangeControl.Factory changeControlFactory;
private final ReviewDb db;
private final GitRepositoryManager gitManager;
- private final GitReferenceUpdated replication;
+ private final GitReferenceUpdated gitRefUpdated;
private final PatchSetInfoFactory patchSetInfoFactory;
private final PatchSet.Id patchSetId;
@@ -52,12 +52,12 @@ public class DeleteDraftPatchSet implements Callable<ReviewResult> {
@Inject
DeleteDraftPatchSet(ChangeControl.Factory changeControlFactory,
ReviewDb db, GitRepositoryManager gitManager,
- GitReferenceUpdated replication, PatchSetInfoFactory patchSetInfoFactory,
+ GitReferenceUpdated gitRefUpdated, PatchSetInfoFactory patchSetInfoFactory,
@Assisted final PatchSet.Id patchSetId) {
this.changeControlFactory = changeControlFactory;
this.db = db;
this.gitManager = gitManager;
- this.replication = replication;
+ this.gitRefUpdated = gitRefUpdated;
this.patchSetInfoFactory = patchSetInfoFactory;
this.patchSetId = patchSetId;
@@ -88,7 +88,7 @@ public class DeleteDraftPatchSet implements Callable<ReviewResult> {
final Change change = control.getChange();
try {
- ChangeUtil.deleteOnlyDraftPatchSet(patch, change, gitManager, replication, db);
+ ChangeUtil.deleteOnlyDraftPatchSet(patch, change, gitManager, gitRefUpdated, db);
} catch (IOException e) {
result.addError(new ReviewResult.Error(
ReviewResult.Error.Type.GIT_ERROR, e.getMessage()));
@@ -97,7 +97,7 @@ public class DeleteDraftPatchSet implements Callable<ReviewResult> {
List<PatchSet> restOfPatches = db.patchSets().byChange(changeId).toList();
if (restOfPatches.size() == 0) {
try {
- ChangeUtil.deleteDraftChange(patchSetId, gitManager, replication, db);
+ ChangeUtil.deleteDraftChange(patchSetId, gitManager, gitRefUpdated, db);
result.setChangeId(null);
} catch (IOException e) {
result.addError(new ReviewResult.Error(
@@ -111,9 +111,10 @@ public class DeleteDraftPatchSet implements Callable<ReviewResult> {
}
}
if (change.currentPatchSetId().equals(patchSetId)) {
- change.removeLastPatchSetId();
try {
- change.setCurrentPatchSet(patchSetInfoFactory.get(db, change.currPatchSetId()));
+ PatchSet.Id id =
+ new PatchSet.Id(patchSetId.getParentKey(), patchSetId.get() - 1);
+ change.setCurrentPatchSet(patchSetInfoFactory.get(db, id));
} catch (PatchSetInfoNotAvailableException e) {
throw new NoSuchChangeException(changeId);
}