From ef22cc85a2bef3e6e83fbf0b96ebaef6bf7bba01 Mon Sep 17 00:00:00 2001 From: Michajlo Matijkiw Date: Tue, 20 Oct 2015 19:21:16 +0000 Subject: Make EmptySkyValue not serializable Should be a singleton, should never be serialized or deserialized, but add equals and hash code as well for good measure. -- MOS_MIGRATED_REVID=105888511 --- .../devtools/build/skyframe/EmptySkyValue.java | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java') diff --git a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java index 723e83e137..3ee8bba123 100644 --- a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java +++ b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java @@ -13,6 +13,9 @@ // limitations under the License. package com.google.devtools.build.skyframe; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + /** * A SkyValue with no attached data. Preferable to a specialized empty value class to minimize * bloat. @@ -21,5 +24,25 @@ public final class EmptySkyValue implements SkyValue { public static final EmptySkyValue INSTANCE = new EmptySkyValue(); private EmptySkyValue() {} -} + @Override + public int hashCode() { + return 422; + } + + @Override + public boolean equals(Object other) { + return other instanceof EmptySkyValue; + } + + // SkyValue implements Serializable, however we don't want to support Java serialization. + @SuppressWarnings("unused") + private void writeObject(ObjectOutputStream unused) { + throw new UnsupportedOperationException("Java serialization not supported"); + } + + @SuppressWarnings("unused") + private void readObject(ObjectInputStream unused) { + throw new UnsupportedOperationException("Java serialization not supported"); + } +} -- cgit v1.2.3