Entendi a inconsistência, no método da linha 9 primeiro vem os dados e depois o controlador, na linha 16, o contrário.

Olhando agora, surgiu uma dúvida: Devo manter os dois métodos createThesisOrDissertation, o que recebe uma lista e o que recebe vários parametros, ou devo remover este último, delegando sempre ao callers a tarefa de criar a lista com os dados?