Merge "GetPastAssignees: Return past assignees as list"
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AssigneeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AssigneeIT.java
index a52fd44..b6256ff 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AssigneeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AssigneeIT.java
@@ -30,7 +30,7 @@
 import org.junit.Test;
 
 import java.util.Iterator;
-import java.util.Set;
+import java.util.List;
 
 @NoHttpd
 public class AssigneeIT extends AbstractDaemonTest {
@@ -73,7 +73,7 @@
     PushOneCommit.Result r = createChange();
     setAssignee(r, user.email);
     setAssignee(r, admin.email);
-    Set<AccountInfo> assignees = getPastAssignees(r);
+    List<AccountInfo> assignees = getPastAssignees(r);
     assertThat(assignees).hasSize(2);
     Iterator<AccountInfo> itr = assignees.iterator();
     assertThat(itr.next()._accountId).isEqualTo(user.getId().get());
@@ -107,7 +107,7 @@
     return gApi.changes().id(r.getChange().getId().get()).getAssignee();
   }
 
-  private Set<AccountInfo> getPastAssignees(PushOneCommit.Result r)
+  private List<AccountInfo> getPastAssignees(PushOneCommit.Result r)
       throws Exception {
     return gApi.changes().id(r.getChange().getId().get()).getPastAssignees();
   }
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ChangeApi.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
index ff698f1..d9cd562 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
@@ -155,7 +155,7 @@
   /**
    * Get all past assignees.
   */
-  Set<AccountInfo> getPastAssignees() throws RestApiException;
+  List<AccountInfo> getPastAssignees() throws RestApiException;
 
   /**
    * Delete the assignee of a change.
@@ -361,7 +361,7 @@
     }
 
     @Override
-    public Set<AccountInfo> getPastAssignees() throws RestApiException {
+    public List<AccountInfo> getPastAssignees() throws RestApiException {
       throw new NotImplementedException();
     }
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
index 358c2f5..c3ebdc4 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
@@ -441,7 +441,7 @@
   }
 
   @Override
-  public Set<AccountInfo> getPastAssignees() throws RestApiException {
+  public List<AccountInfo> getPastAssignees() throws RestApiException {
     try {
       return getPastAssignees.apply(change).value();
     } catch (Exception e) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetPastAssignees.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetPastAssignees.java
index bde7806..fa9c0e8 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetPastAssignees.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetPastAssignees.java
@@ -14,7 +14,7 @@
 
 package com.google.gerrit.server.change;
 
-import static java.util.stream.Collectors.toSet;
+import static java.util.stream.Collectors.toList;
 
 import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.restapi.Response;
@@ -26,6 +26,7 @@
 import com.google.inject.Inject;
 
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 public class GetPastAssignees implements RestReadView<ChangeResource> {
@@ -37,19 +38,19 @@
   }
 
   @Override
-  public Response<Set<AccountInfo>> apply(ChangeResource rsrc)
+  public Response<List<AccountInfo>> apply(ChangeResource rsrc)
       throws OrmException {
 
     Set<Account.Id> pastAssignees =
         rsrc.getControl().getNotes().load().getPastAssignees();
     if (pastAssignees == null) {
-      return Response.ok(Collections.emptySet());
+      return Response.ok(Collections.emptyList());
     }
     AccountInfoCacheFactory accountInfoFactory = accountInfos.create();
 
     return Response.ok(pastAssignees.stream()
         .map(accountInfoFactory::get)
         .map(AccountJson::toAccountInfo)
-        .collect(toSet()));
+        .collect(toList()));
   }
 }