From f45d9131d5d2bbb2cc4cec67ebe82054fda58f55 Mon Sep 17 00:00:00 2001 From: Frank Natividad Date: Tue, 10 Mar 2020 11:46:10 -0700 Subject: [PATCH 1/3] fix: verify correctness of map -> list equality (#174) * fix: verify correctness of map -> list equality * address comments * format --- .../main/java/com/google/cloud/Policy.java | 16 ++++++++-- .../java/com/google/cloud/PolicyTest.java | 30 +++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/google-cloud-core/src/main/java/com/google/cloud/Policy.java b/google-cloud-core/src/main/java/com/google/cloud/Policy.java index a6ecbae11e..1c5b78c9ea 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/Policy.java +++ b/google-cloud-core/src/main/java/com/google/cloud/Policy.java @@ -260,7 +260,7 @@ public final Builder addIdentity(Role role, Identity first, Identity... others) Binding binding = bindingsList.get(i); if (binding.getRole().equals(role.getValue())) { Binding.Builder bindingBuilder = binding.toBuilder(); - ImmutableList.Builder membersBuilder = ImmutableList.builder(); + ImmutableSet.Builder membersBuilder = ImmutableSet.builder(); membersBuilder.addAll(binding.getMembers()); membersBuilder.add(first.strValue()); for (Identity identity : others) { @@ -273,7 +273,7 @@ public final Builder addIdentity(Role role, Identity first, Identity... others) } // Binding does not yet exist. Binding.Builder bindingBuilder = Binding.newBuilder().setRole(role.getValue()); - ImmutableList.Builder membersBuilder = ImmutableList.builder(); + ImmutableSet.Builder membersBuilder = ImmutableSet.builder(); membersBuilder.add(first.strValue()); for (Identity identity : others) { membersBuilder.add(identity.strValue()); @@ -432,9 +432,19 @@ public boolean equals(Object obj) { return false; } Policy other = (Policy) obj; - if (!bindingsList.equals(other.getBindingsList())) { + if (bindingsList == null && other.getBindingsList() == null) { + return true; + } + if ((bindingsList == null && other.getBindingsList() != null) + || bindingsList != null && other.getBindingsList() == null + || bindingsList.size() != other.getBindingsList().size()) { return false; } + for (Binding binding : bindingsList) { + if (!other.getBindingsList().contains(binding)) { + return false; + } + } return Objects.equals(etag, other.getEtag()) && version == other.getVersion(); } diff --git a/google-cloud-core/src/test/java/com/google/cloud/PolicyTest.java b/google-cloud-core/src/test/java/com/google/cloud/PolicyTest.java index eb03e33726..98695c2a4c 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/PolicyTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/PolicyTest.java @@ -104,6 +104,36 @@ public void testBuilder() { assertEquals(0, policy.getVersion()); } + @Test + public void testPolicyOrderShouldNotMatter() { + Role role1 = Role.of("role1"); + Identity identity1 = Identity.user("user1@example.com"); + Role role2 = Role.of("role2"); + Identity identity2 = Identity.user("user2@example.com"); + Policy policy1 = + Policy.newBuilder().addIdentity(role1, identity1).addIdentity(role2, identity2).build(); + Policy policy2 = + Policy.newBuilder().addIdentity(role2, identity2).addIdentity(role1, identity1).build(); + assertEquals(policy1, policy2); + } + + @Test + public void testPolicyMultipleAddIdentitiesShouldNotMatter() { + Role role1 = Role.of("role1"); + Identity identity1 = Identity.user("user1@example.com"); + Role role2 = Role.of("role2"); + Identity identity2 = Identity.user("user2@example.com"); + Policy policy1 = + Policy.newBuilder() + .addIdentity(role1, identity1) + .addIdentity(role2, identity2) + .addIdentity(role2, identity2) + .build(); + Policy policy2 = + Policy.newBuilder().addIdentity(role2, identity2).addIdentity(role1, identity1).build(); + assertEquals(policy1, policy2); + } + @Test public void testIllegalPolicies() { try { From 5a5c43b5c607e06cc2e0dc7f00f358d577b05435 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2020 19:06:02 +0000 Subject: [PATCH 2/3] chore: release 1.93.2-SNAPSHOT (#175) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-core-bom/pom.xml | 8 ++++---- google-cloud-core-grpc/pom.xml | 4 ++-- google-cloud-core-http/pom.xml | 4 ++-- google-cloud-core/pom.xml | 4 ++-- pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/google-cloud-core-bom/pom.xml b/google-cloud-core-bom/pom.xml index 8445850b87..3673739406 100644 --- a/google-cloud-core-bom/pom.xml +++ b/google-cloud-core-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-bom - 1.93.1 + 1.93.2-SNAPSHOT pom com.google.cloud @@ -63,17 +63,17 @@ com.google.cloud google-cloud-core - 1.93.1 + 1.93.2-SNAPSHOT com.google.cloud google-cloud-core-grpc - 1.93.1 + 1.93.2-SNAPSHOT com.google.cloud google-cloud-core-http - 1.93.1 + 1.93.2-SNAPSHOT diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml index d1074141c2..7a1189cd29 100644 --- a/google-cloud-core-grpc/pom.xml +++ b/google-cloud-core-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-grpc - 1.93.1 + 1.93.2-SNAPSHOT jar Google Cloud Core gRPC https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.1 + 1.93.2-SNAPSHOT google-cloud-core-grpc diff --git a/google-cloud-core-http/pom.xml b/google-cloud-core-http/pom.xml index 538788db56..45e603fa53 100644 --- a/google-cloud-core-http/pom.xml +++ b/google-cloud-core-http/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-http - 1.93.1 + 1.93.2-SNAPSHOT jar Google Cloud Core HTTP https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.1 + 1.93.2-SNAPSHOT google-cloud-core-http diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index 429cc038ff..67f653495c 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core - 1.93.1 + 1.93.2-SNAPSHOT jar Google Cloud Core https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.1 + 1.93.2-SNAPSHOT google-cloud-core diff --git a/pom.xml b/pom.xml index 4ddf556432..e537920099 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-core-parent pom - 1.93.1 + 1.93.2-SNAPSHOT Google Cloud Core Parent https://github.com/googleapis/java-core diff --git a/versions.txt b/versions.txt index 7690ef2e2d..6658b5de7c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-core:1.93.1:1.93.1 \ No newline at end of file +google-cloud-core:1.93.1:1.93.2-SNAPSHOT \ No newline at end of file From 3c0e74fd5d14eab052144a5b50753cc74e3d205b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2020 19:16:03 +0000 Subject: [PATCH 3/3] chore: release 1.93.2 (#176) :robot: I have created a release \*beep\* \*boop\* --- ### [1.93.2](https://www.github.com/googleapis/java-core/compare/v1.93.1...v1.93.2) (2020-03-10) ### Bug Fixes * verify correctness of map -> list equality ([#174](https://www.github.com/googleapis/java-core/issues/174)) ([f45d913](https://www.github.com/googleapis/java-core/commit/f45d9131d5d2bbb2cc4cec67ebe82054fda58f55)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ google-cloud-core-bom/pom.xml | 8 ++++---- google-cloud-core-grpc/pom.xml | 4 ++-- google-cloud-core-http/pom.xml | 4 ++-- google-cloud-core/pom.xml | 4 ++-- pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11e13476f4..3bf02ff519 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.93.2](https://www.github.com/googleapis/java-core/compare/v1.93.1...v1.93.2) (2020-03-10) + + +### Bug Fixes + +* verify correctness of map -> list equality ([#174](https://www.github.com/googleapis/java-core/issues/174)) ([f45d913](https://www.github.com/googleapis/java-core/commit/f45d9131d5d2bbb2cc4cec67ebe82054fda58f55)) + ### [1.93.1](https://www.github.com/googleapis/java-core/compare/v1.93.0...v1.93.1) (2020-02-28) diff --git a/google-cloud-core-bom/pom.xml b/google-cloud-core-bom/pom.xml index 3673739406..e31862e0b9 100644 --- a/google-cloud-core-bom/pom.xml +++ b/google-cloud-core-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-bom - 1.93.2-SNAPSHOT + 1.93.2 pom com.google.cloud @@ -63,17 +63,17 @@ com.google.cloud google-cloud-core - 1.93.2-SNAPSHOT + 1.93.2 com.google.cloud google-cloud-core-grpc - 1.93.2-SNAPSHOT + 1.93.2 com.google.cloud google-cloud-core-http - 1.93.2-SNAPSHOT + 1.93.2 diff --git a/google-cloud-core-grpc/pom.xml b/google-cloud-core-grpc/pom.xml index 7a1189cd29..b6d2e6707a 100644 --- a/google-cloud-core-grpc/pom.xml +++ b/google-cloud-core-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-grpc - 1.93.2-SNAPSHOT + 1.93.2 jar Google Cloud Core gRPC https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.2-SNAPSHOT + 1.93.2 google-cloud-core-grpc diff --git a/google-cloud-core-http/pom.xml b/google-cloud-core-http/pom.xml index 45e603fa53..c933ff67e6 100644 --- a/google-cloud-core-http/pom.xml +++ b/google-cloud-core-http/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-http - 1.93.2-SNAPSHOT + 1.93.2 jar Google Cloud Core HTTP https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.2-SNAPSHOT + 1.93.2 google-cloud-core-http diff --git a/google-cloud-core/pom.xml b/google-cloud-core/pom.xml index 67f653495c..ef98cf5d64 100644 --- a/google-cloud-core/pom.xml +++ b/google-cloud-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core - 1.93.2-SNAPSHOT + 1.93.2 jar Google Cloud Core https://github.com/googleapis/java-core @@ -13,7 +13,7 @@ com.google.cloud google-cloud-core-parent - 1.93.2-SNAPSHOT + 1.93.2 google-cloud-core diff --git a/pom.xml b/pom.xml index e537920099..5d1525e917 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-core-parent pom - 1.93.2-SNAPSHOT + 1.93.2 Google Cloud Core Parent https://github.com/googleapis/java-core diff --git a/versions.txt b/versions.txt index 6658b5de7c..acbf6e6ef4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-core:1.93.1:1.93.2-SNAPSHOT \ No newline at end of file +google-cloud-core:1.93.2:1.93.2 \ No newline at end of file