Merge branch 'stable-3.3' * stable-3.3: Fix projects cache eviction on Project.NameKey Change-Id: Ie81c7f13604356e9d63b9ffc7a6c64fccfbe7cdf
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java index 0bbdada..b69cb91 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParser.java
@@ -17,6 +17,7 @@ import com.google.common.base.MoreObjects; import com.google.gerrit.entities.Account; import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.events.EventGson; import com.google.gson.Gson; import com.google.gson.JsonElement; @@ -46,6 +47,9 @@ case Constants.GROUPS_MEMBERS: key = AccountGroup.uuid(jsonElement(json).getAsJsonObject().get("uuid").getAsString()); break; + case Constants.PROJECTS: + key = Project.nameKey(jsonElement(json).getAsString()); + break; case Constants.PROJECT_LIST: key = gson.fromJson(nullToEmpty(json).toString(), Object.class); break;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java index 12bdb74..cb4a223 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/GsonParserTest.java
@@ -18,6 +18,7 @@ import com.google.gerrit.entities.Account; import com.google.gerrit.entities.AccountGroup; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.events.EventGsonProvider; import com.google.gson.Gson; import com.googlesource.gerrit.plugins.multisite.cache.Constants; @@ -51,9 +52,16 @@ } @Test + public void projectNameKeyParse() { + Project.NameKey name = Project.nameKey("foo"); + String json = gson.toJson(name); + assertThat(name).isEqualTo(gsonParser.fromJson(Constants.PROJECTS, json)); + } + + @Test public void stringParse() { String key = "key"; - assertThat(key).isEqualTo(gsonParser.fromJson(Constants.PROJECTS, key)); + assertThat(key).isEqualTo(gsonParser.fromJson("any-cache-with-string-key", key)); } @Test