in chill-scala/src/main/scala/com/twitter/chill/Externalizer.scala [195:209]
def read(kryo: Kryo, input: Input): Unit = {
doesJavaWork.set(None)
testing.set(false)
val state = input.readInt()
val resolver = kryo.getReferenceResolver
state match {
case -1 =>
val objId = resolver.nextReadId(this.getClass)
resolver.setReadObject(objId, this)
maybeReadJavaKryo(new ObjectInputStream(input), () => kryo)
case n =>
val z = resolver.getReadObject(this.getClass, n).asInstanceOf[Externalizer[T]]
if (!(z eq this)) item = Left(z)
}
}