"Компьютер делает не то, что вы хотели, а то, что вы ему приказали"
Внимательно посмотри на логику своего saveUser.
Ты ищешь юзера по имени. Если он найден (user != null), то возвращаешь false.
А если не найден (то есть user == null) то... ты вызываешь user.setRoles(...)
Ессно, ловя NPE.