There seems to be a bug in Jackson 2.3.2 with deserializing Guava `Optional<T>` instances where `T` is a polymorphic type.  It never parses the `@JsonTypeInfo` and `@JsonSubTypes` annotations in that case and thus can't figure out what concrete class to instantiate.  Replacing the `Optional<T>` with `T` fixes this.  Since we were hardly using the `Optional<T>` nature of this variable, I just changed it and used `null` to indicate missing.