Étrange exception: “le Nom ne doit pas être null ou vide!”

Je suis dans une étrange erreur dans un projet pour le Printemps, qui est le suivant:

SÉVÈRE: Servlet.service() de la servlet [calzoneServlet] dans le contexte de chemin [/calzone] a jeté exception [Demande de traitement a échoué; nested exception est org.springframework.dao.InvalidDataAccessApiUsageException: Nom ne doit pas être null ou vide!; nested exception java.lang.IllegalArgumentException: Nom ne doit pas être null ou vide!] à cause de racine
java.lang.IllegalArgumentException: Nom ne doit pas être null ou vide!

Dans ce projet, tous les modèles sont mappées à la base de données de l'utilisation d'hibernate et jpa. Le front-end de Twitter Bootstrap (avec ressort de validation de formulaire, etc)

L'erreur se produit à différentes parties du programme, dont l'une est un contrôleur pour activer un compte d'utilisateur (code ci-dessous). Pour moi, cela ressemble à une sorte d'erreur de validation, mais ce n'est pas une erreur que j'ai jamais défini. Puisque je ne peux pas repérer l'emplacement exact de l'erreur, je vais seulement donner au contrôleur ci-dessous. Il est à noter que tous les messages de débogage (que ce soit par le biais de l'enregistreur ou tout simplement un bon vieux sysout) dans le activateUser méthode ne s'affichent pas.

Toutes les dépendances (pom.xml) peut être trouvé ici: http://pastebin.com/fs7SG0W2
Web.xml ici: http://pastebin.com/vAJh29Aw
L'ensemble de la stacktrace peut être trouvé ici: http://codepad.org/p0Yt5hi2 (sur codepad, parce qu'il a le défilement horizontal)

Quelqu'un a une idée de pourquoi cette erreur peut se produire, ou n'ont aucune idée de comment je peux savoir pourquoi il se passe?

@Controller
public class ActivateAccountController {
    final Logger logger = LoggerFactory.getLogger(getClass());
    @RequestMapping(value = "/activate/{keyString}", method = RequestMethod.GET)
    public String activateUser(@PathVariable String keyString) {
        ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        KeyService keyService = (KeyService) context.getBean("keyService");
        UserService userService = (UserService) context.getBean("userService");
        User user;
        try {
            logger.error("DID I GET HERE?");
            user = keyService.findUserByKey(keyString);
        } catch (KeyNotFoundException ex) {
            return "ActivatedNotAccount";
        } finally {
            //Close the application context in every case
            context.close();
        }
        //Activate the in-memory user
        userService.activateUser(user);
        //Delete the key from the database
        keyService.deleteKey(keyString);
        //Finally, update the user in the database
        userService.updateUser(user);
        logger.info("Acticated user with ID \"{}\", First name: \"{}\", Last name: \"{}\" and username: \"{}\"",
                user.getId(), user.getPerson().getFirstName(), user.getPerson().getLastName(), user.getUsername());
        return "ActivatedAccount";
    }
}

OriginalL'auteur Sam | 2014-03-30