@Log private Person createPerson(PersonDTO personDTO) throws DuplicateException, NullArgumentException { Person user = null; if (personDTO != null) { if (personDTO.getEmail() != null && personDTO.getPassword() != null) { try { user = em.createNamedQuery("Person.findByEmail", Person.class) .setParameter("email", personDTO.getEmail()) .getSingleResult(); } catch (NoResultException e) { } if (user == null) { Person persontemp = new Person(personDTO.getEmail()); persontemp.setName(personDTO.getFirstname()); persontemp.setSurname(personDTO.getSurname()); persontemp.setSsn(personDTO.getSsn()); persontemp.setPassword(getEncryptedPassword(personDTO.getPassword())); em.persist(persontemp); return persontemp; } else { throw new DuplicateException("Person already exists"); } } else { throw new NullArgumentException("Null argument for email or password"); } } return user; }