Merge "Fix usage of assertThat in assertReviewers"
diff --git a/gerrit-reviewdb/BUCK b/gerrit-reviewdb/BUCK
index 9b1991b..ca2c18c 100644
--- a/gerrit-reviewdb/BUCK
+++ b/gerrit-reviewdb/BUCK
@@ -29,8 +29,10 @@
   srcs = glob([TESTS + 'client/**/*.java']),
   deps = [
     ':client',
+    '//lib:guava',
     '//lib:gwtorm',
     '//lib:junit',
+    '//lib:truth',
   ],
   source_under_test = [':client'],
   visibility = ['//tools/eclipse:classpath'],
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/LabelId.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/LabelId.java
index 7532038..9a15966 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/LabelId.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/LabelId.java
@@ -41,17 +41,4 @@
   protected void set(String newValue) {
     id = newValue;
   }
-
-  @Override
-  public int hashCode() {
-    return get().hashCode();
-  }
-
-  @Override
-  public boolean equals(Object b) {
-    if (this == b) {
-      return get().equals(((LabelId) b).get());
-    }
-    return false;
-  }
 }
diff --git a/gerrit-reviewdb/src/test/java/com/google/gerrit/reviewdb/client/PatchSetApprovalTest.java b/gerrit-reviewdb/src/test/java/com/google/gerrit/reviewdb/client/PatchSetApprovalTest.java
new file mode 100644
index 0000000..eba08c8
--- /dev/null
+++ b/gerrit-reviewdb/src/test/java/com/google/gerrit/reviewdb/client/PatchSetApprovalTest.java
@@ -0,0 +1,63 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.reviewdb.client;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.gwtorm.client.KeyUtil;
+import com.google.gwtorm.server.StandardKeyEncoder;
+
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class PatchSetApprovalTest {
+  static {
+    KeyUtil.setEncoderImpl(new StandardKeyEncoder());
+  }
+
+  @Test
+  public void keyEquality() {
+    PatchSetApproval.Key k1 = new PatchSetApproval.Key(
+        new PatchSet.Id(new Change.Id(1), 2),
+        new Account.Id(3),
+        new LabelId("My-Label"));
+    PatchSetApproval.Key k2 = new PatchSetApproval.Key(
+        new PatchSet.Id(new Change.Id(1), 2),
+        new Account.Id(3),
+        new LabelId("My-Label"));
+    PatchSetApproval.Key k3 = new PatchSetApproval.Key(
+        new PatchSet.Id(new Change.Id(1), 2),
+        new Account.Id(3),
+        new LabelId("Other-Label"));
+
+    assertThat(k2).isEqualTo(k1);
+    assertThat(k3).isNotEqualTo(k1);
+    assertThat(k2.hashCode()).isEqualTo(k1.hashCode());
+    assertThat(k3.hashCode()).isNotEqualTo(k1.hashCode());
+
+    Map<PatchSetApproval.Key, String> map = new HashMap<>();
+    map.put(k1, "k1");
+    map.put(k2, "k2");
+    map.put(k3, "k3");
+    assertThat(map).containsKey(k1);
+    assertThat(map).containsKey(k2);
+    assertThat(map).containsKey(k3);
+    assertThat(map).containsEntry(k1, "k2");
+    assertThat(map).containsEntry(k2, "k2");
+    assertThat(map).containsEntry(k3, "k3");
+  }
+}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
index 2d1110e..2642831 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
@@ -419,7 +419,8 @@
     }
 
     PatchSetApproval submit = ApprovalsUtil.getSubmitter(psId, byKey.values());
-    if (submit == null || submit.getAccountId() != caller.getAccountId()) {
+    if (submit == null
+        || !submit.getAccountId().equals(caller.getAccountId())) {
       submit = new PatchSetApproval(
           new PatchSetApproval.Key(
               rsrc.getPatchSet().getId(),
diff --git a/lib/BUCK b/lib/BUCK
index 28c8a5a..906be8a 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -36,9 +36,9 @@
 
 maven_jar(
   name = 'gwtjsonrpc',
-  id = 'gwtjsonrpc:gwtjsonrpc:1.6',
-  bin_sha1 = '3673018b2d26a428d8fac6d2defce45e79f76452',
-  src_sha1 = '3d638e807dc8e6435f819eaade9b45d370cd164f',
+  id = 'gwtjsonrpc:gwtjsonrpc:1.7-2-g272ca32',
+  bin_sha1 = '91be25537f7e53e0b5ff5edb9a42ebfc56f764b6',
+  src_sha1 = '7e6d8892f2e3bf21a9854afcfd2534263636dcbc',
   license = 'Apache2.0',
   repository = GERRIT,
 )