Set topic before we try to use it if it is empty.
Change-Id: I47e1ada1667466f0987af2ff15b07e1bf8e3fec6
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
index c51cd1a..cec8427 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
@@ -73,7 +73,7 @@
mdsMergeInput.dsBranchMap = branchMap;
mdsMergeInput.sourceId = change.getId().get();
mdsMergeInput.project = change.getProject().get();
- mdsMergeInput.topic = change.getTopic();
+ mdsMergeInput.topic = dsCreator.getOrSetTopic(change.getId().get(), change.getTopic());
mdsMergeInput.subject = change.getSubject();
mdsMergeInput.obsoleteRevision = revision;
mdsMergeInput.currentRevision = revision;
@@ -87,7 +87,7 @@
"Automerger configuration file is invalid: " + e.getMessage());
} catch (InvalidQueryParameterException e) {
throw new ResourceConflictException(
- "Topic or branch cannot have both braces and quotes: " + e.getMessage());
+ "Topic or branch cannot have both braces and quotes: " + e.getMessage());
}
return Response.none();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
index 4a4aba0..8de671f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
@@ -390,7 +390,7 @@
public void createSingleDownstreamMerge(SingleDownstreamMergeInput sdsMergeInput)
throws RestApiException, ConfigInvalidException {
- String currentTopic = setTopic(sdsMergeInput.sourceId, sdsMergeInput.topic);
+ String currentTopic = getOrSetTopic(sdsMergeInput.sourceId, sdsMergeInput.topic);
MergeInput mergeInput = new MergeInput();
mergeInput.source = sdsMergeInput.currentRevision;
@@ -422,6 +422,15 @@
updateVote(downstreamChange.get(), config.getAutomergeLabel(), config.getMaxAutomergeVote());
}
+ public String getOrSetTopic(int sourceId, String topic) throws RestApiException {
+ if (topic == null || topic.isEmpty()) {
+ topic = "am-" + UUID.randomUUID().toString();
+ log.debug("Setting original change {} topic to {}", sourceId, topic);
+ gApi.changes().id(sourceId).topic(topic);
+ }
+ return topic;
+ }
+
private void automergeChanges(ChangeInfo change, RevisionInfo revisionInfo)
throws RestApiException, IOException, ConfigInvalidException, InvalidQueryParameterException {
if (revisionInfo.draft != null && revisionInfo.draft) {
@@ -550,13 +559,4 @@
abandonInput.message = "Merge parent updated; abandoning due to upstream conflict.";
gApi.changes().id(changeNumber).abandon(abandonInput);
}
-
- private String setTopic(int sourceId, String topic) throws RestApiException {
- if (topic == null || topic.isEmpty()) {
- topic = "am-" + UUID.randomUUID().toString();
- log.debug("Setting original change {} topic to {}", sourceId, topic);
- gApi.changes().id(sourceId).topic(topic);
- }
- return topic;
- }
}