Merge "Complete release notes for Gerrit 2.5" into stable-2.5
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java
index 29e5dbb..a71e12e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/PublishDraft.java
@@ -74,47 +74,29 @@
result.addError(new ReviewResult.Error(
ReviewResult.Error.Type.PUBLISH_NOT_PERMITTED));
} else {
- boolean published = false;
final PatchSet updatedPatch = db.patchSets().atomicUpdate(patchSetId,
new AtomicUpdate<PatchSet>() {
@Override
public PatchSet update(PatchSet patchset) {
- if (patchset.isDraft()) {
- patchset.setDraft(false);
- return patchset;
- }
- return null;
+ patchset.setDraft(false);
+ return patchset;
}
});
- if ((updatedPatch != null) && (!updatedPatch.isDraft())) {
- published = true;
- }
-
- final Change change = db.changes().get(changeId);
- if (change.getStatus() == Change.Status.DRAFT) {
- final Change updatedChange = db.changes().atomicUpdate(changeId,
- new AtomicUpdate<Change>() {
- @Override
- public Change update(Change change) {
- if (change.getStatus() == Change.Status.DRAFT) {
- change.setStatus(Change.Status.NEW);
- ChangeUtil.updated(change);
- return change;
- } else {
- return null;
- }
+ final Change updatedChange = db.changes().atomicUpdate(changeId,
+ new AtomicUpdate<Change>() {
+ @Override
+ public Change update(Change change) {
+ if (change.getStatus() == Change.Status.DRAFT) {
+ change.setStatus(Change.Status.NEW);
+ ChangeUtil.updated(change);
}
- });
-
- if ((updatedChange != null) &&
- (updatedChange.getStatus() == Change.Status.NEW)) {
- published = true;
+ return change;
}
- }
+ });
- if (published) {
- hooks.doDraftPublishedHook(change, patch, db);
+ if (!updatedPatch.isDraft() || updatedChange.getStatus() == Change.Status.NEW) {
+ hooks.doDraftPublishedHook(updatedChange, updatedPatch, db);
}
}
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java
index 9a81140..c8544e4 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/TestSubmitRule.java
@@ -51,6 +51,7 @@
import org.kohsuke.args4j.Option;
import java.io.InputStreamReader;
+import java.io.PushbackReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
@@ -102,7 +103,7 @@
@Override
protected void run() throws UnloggedFailure {
- InputStreamReader inReader = new InputStreamReader(in);
+ PushbackReader inReader = new PushbackReader(new InputStreamReader(in));
try {
PrologEnvironment pcl;