public String doForgotPassword() { TypedQuery<User> query = em.createNamedQuery(User.FIND_BY_EMAIL, User.class); query.setParameter("email", user.getEmail()); try { user = query.getSingleResult(); String temporaryPassword = Lorem.getWords(1); user.setPassword(PasswordUtils.digestPassword(temporaryPassword)); em.merge(user); facesContext.addMessage( null, new FacesMessage( FacesMessage.SEVERITY_INFO, "Email sent", "An email has been sent to " + user.getEmail() + " with temporary password :"******"dummyPassword" return doLogout(); } catch (NoResultException e) { facesContext.addMessage( null, new FacesMessage( FacesMessage.SEVERITY_WARN, "Unknown email", "This email address is unknonw in our system")); return null; } }