Hack serialization of Environment$Extension so that it deserializes, although not correctly. Attempts to use it will still most likely fail, but won't crash.
--
MOS_MIGRATED_REVID=103029603
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 1bfba3a..89360a7 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -230,6 +230,11 @@
BaseExtension(Environment env) {
this.bindings = ImmutableMap.copyOf(env.globalFrame.bindings);
}
+
+ // Hack to allow serialization.
+ BaseExtension() {
+ this.bindings = ImmutableMap.of();
+ }
}
/**
@@ -249,6 +254,12 @@
this.transitiveContentHashCode = env.getTransitiveContentHashCode();
}
+ // Hack to allow serialization.
+ private Extension() {
+ super();
+ this.transitiveContentHashCode = null;
+ }
+
@VisibleForTesting // This is only used in one test.
public String getTransitiveContentHashCode() {
return transitiveContentHashCode;