diff --git a/interface/src/main/java/xsbti/api/AbstractLazy.java b/interface/src/main/java/xsbti/api/AbstractLazy.java index bd21f166f..bd49deded 100644 --- a/interface/src/main/java/xsbti/api/AbstractLazy.java +++ b/interface/src/main/java/xsbti/api/AbstractLazy.java @@ -3,11 +3,17 @@ */ package xsbti.api; - import java.io.ObjectStreamException; +import java.io.ObjectStreamException; public abstract class AbstractLazy implements Lazy, java.io.Serializable { - private Object writeReplace() throws ObjectStreamException + // `writeReplace` must be `protected`, so that the `Impl` subclass + // inherits the serialization override. + // + // (See source-dependencies/java-analysis-serialization-error, which would + // crash trying to serialize an AbstractLazy, because it pulled in an + // unserializable type eventually.) + protected Object writeReplace() throws ObjectStreamException { return new StrictLazy(get()); }