Fix: Duplicate options of permitted_labels.

For a given LABEL, e.g. named Qualified, When
the SubmitRecord.Label value is like
'NOT_READY[Qualified: OK, Code-Review: NEED, Qualified: MAY]'
the Qualified options will show duplicated options on WebUI.

Reason: ListMultimap is used to keep permitted_labels and
its values. Fixed by replacing ListMultimap by SetMultimap.
Please note this change only affects permitted_labels.

Change-Id: I8c9683474650233cd131236e78281e67967c2a12
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
index ce6ab2e..b1d0603 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
@@ -30,11 +30,12 @@
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimap;
+import com.google.common.collect.SetMultimap;
 import com.google.common.collect.Sets;
 import com.google.common.collect.Table;
 import com.google.gerrit.common.changes.ListChangesOption;
@@ -576,7 +577,7 @@
     }
 
     LabelTypes labelTypes = ctl.getLabelTypes();
-    ListMultimap<String, String> permitted = LinkedListMultimap.create();
+    SetMultimap<String, String> permitted = LinkedHashMultimap.create();
     for (SubmitRecord rec : submitRecords(cd)) {
       if (rec.labels == null) {
         continue;