diff --git a/java/com/google/gerrit/entities/Project.java b/java/com/google/gerrit/entities/Project.java index 07f9bc1052..ecef87d69c 100644 --- a/java/com/google/gerrit/entities/Project.java +++ b/java/com/google/gerrit/entities/Project.java @@ -19,6 +19,7 @@ import static java.util.Objects.requireNonNull; import com.google.gerrit.extensions.client.InheritableBoolean; import com.google.gerrit.extensions.client.ProjectState; import com.google.gerrit.extensions.client.SubmitType; +import java.io.Serializable; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -46,7 +47,9 @@ public final class Project { * unlike other key types in this package. However, this is strictly an implementation detail; its * interface and semantics are otherwise analogous to the {@code @AutoValue} types. */ - public static class NameKey implements Comparable { + public static class NameKey implements Serializable, Comparable { + private static final long serialVersionUID = 1L; + /** Parse a Project.NameKey out of a string representation. */ public static NameKey parse(String str) { return nameKey(KeyUtil.decode(str)); diff --git a/java/com/google/gerrit/server/config/AllProjectsName.java b/java/com/google/gerrit/server/config/AllProjectsName.java index bf652a7087..6d5525c96f 100644 --- a/java/com/google/gerrit/server/config/AllProjectsName.java +++ b/java/com/google/gerrit/server/config/AllProjectsName.java @@ -18,6 +18,8 @@ import com.google.gerrit.entities.Project; /** Special name of the project that all projects derive from. */ public class AllProjectsName extends Project.NameKey { + private static final long serialVersionUID = 1L; + public AllProjectsName(String name) { super(name); } diff --git a/java/com/google/gerrit/server/config/AllUsersName.java b/java/com/google/gerrit/server/config/AllUsersName.java index 16ce43c88c..aa92db899d 100644 --- a/java/com/google/gerrit/server/config/AllUsersName.java +++ b/java/com/google/gerrit/server/config/AllUsersName.java @@ -18,6 +18,8 @@ import com.google.gerrit.entities.Project; /** Special name of the project in which meta data for all users is stored. */ public class AllUsersName extends Project.NameKey { + private static final long serialVersionUID = 1L; + public AllUsersName(String name) { super(name); } diff --git a/javatests/com/google/gerrit/server/cache/serialize/BUILD b/javatests/com/google/gerrit/server/cache/serialize/BUILD index 81f577e7b6..ce5f273a38 100644 --- a/javatests/com/google/gerrit/server/cache/serialize/BUILD +++ b/javatests/com/google/gerrit/server/cache/serialize/BUILD @@ -4,6 +4,7 @@ junit_tests( name = "tests", srcs = glob(["*.java"]), deps = [ + "//java/com/google/gerrit/entities", "//java/com/google/gerrit/server/cache/serialize", "//java/com/google/gerrit/server/cache/testing", "//java/com/google/gerrit/testing:gerrit-test-util", diff --git a/javatests/com/google/gerrit/server/cache/serialize/JavaCacheSerializerTest.java b/javatests/com/google/gerrit/server/cache/serialize/JavaCacheSerializerTest.java index 6596730c10..effc801c54 100644 --- a/javatests/com/google/gerrit/server/cache/serialize/JavaCacheSerializerTest.java +++ b/javatests/com/google/gerrit/server/cache/serialize/JavaCacheSerializerTest.java @@ -17,6 +17,7 @@ package com.google.gerrit.server.cache.serialize; import static com.google.common.truth.Truth.assertThat; import com.google.auto.value.AutoValue; +import com.google.gerrit.entities.Project; import java.io.Serializable; import org.junit.Test; @@ -33,6 +34,11 @@ public class JavaCacheSerializerTest { assertRoundTrip(new AutoValue_JavaCacheSerializerTest_MyType(123, "four five six")); } + @Test + public void gerritEntities() throws Exception { + assertRoundTrip(Project.nameKey("foo")); + } + @AutoValue abstract static class MyType implements Serializable { private static final long serialVersionUID = 1L;