Spring Data Mongodb Convert Document Falsely

I have a document structure which has some generic class. For writing to mongodb everything is fine. But when reading documents from mongodb spring data converts document into object falsely. It converts a subdocument with another type. Both types (actual subcollection type and falsely converted type) are inherit from same abstract class.

Model Classes:(getter setters are generated by lombok )

@Data
public abstract class CandidateInfo {

    private String _id;
}

@Data
public class CandidateInfoContainer<E extends CandidateInfo> {

    private String _id;

    private int commentCount = 0;

    @Valid
    private List<E> values = new ArrayList<>();
}

@Data
public class Responsibility extends CandidateInfo {

    @NotNull
    private String responsibilityId;

    @ReadOnlyProperty
    private String responsibilityText;
}

@Data
public class Experience extends CandidateInfo {

    @Valid
    private CandidateInfoContainer<Responsibility> responsibilities;
}

@Document
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class Candidate {

    private String _id;

    @Valid
    private CandidateInfoContainer<Experience> experiences;
}

And if you create a mongoRepository like below:

@Repository
public interface CandidateRepository extends MongoRepository<Candidate,String>{
}

And use it like:

@Autowired
private CandidateRepository candidateRepository;

Candidate candidate = candidateRepository.findOne("documentId");

Then spring data mongo mapping converter creates candidates.experiences.responsibilities.values list as Experince list but it should be Responsibility list.

You can find a demo project in this link and more information about the issue. Can anyone point out what is wrong? Otherwise i have to write my own converter(demo has one)

If there is any unclear thing, you can ask.

Thanks.

I open an issue in spring-data-mongo here. Appareantly I caught a bug! Thanks everyone