diff --git a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java index b61e05236..888474f6b 100644 --- a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java @@ -45,10 +45,6 @@ public abstract class AbstractEntityRepository { */ @Inject private transient EntityManager entityManager; - - @Inject - @HibernateValidator - private Validator validator; /** * Getter method for retrieving the injected {@link EntityManager}. diff --git a/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java b/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java index 52885c1a4..beca673d7 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java @@ -37,7 +37,7 @@ public class CcmObjectRepository extends AbstractEntityRepositoryJens Pelzetter + */ +class MultipleMatchingUserException extends RuntimeException { + private static final long serialVersionUID = 100237510055701060L; + + public MultipleMatchingUserException() { + super(); + } + + public MultipleMatchingUserException(final String msg) { + super(msg); + } + + public MultipleMatchingUserException(final Exception cause) { + super(cause); + } + + public MultipleMatchingUserException(final String msg, + final Exception cause) { + super(msg, cause); + } + +} diff --git a/ccm-core/src/main/java/org/libreccm/core/Subject.java b/ccm-core/src/main/java/org/libreccm/core/Subject.java index 578e5b0c1..d484d3a55 100644 --- a/ccm-core/src/main/java/org/libreccm/core/Subject.java +++ b/ccm-core/src/main/java/org/libreccm/core/Subject.java @@ -31,6 +31,7 @@ import javax.persistence.CollectionTable; import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @@ -62,7 +63,7 @@ public class Subject implements Serializable { @GeneratedValue(strategy = GenerationType.AUTO) private long subjectId; - @ElementCollection + @ElementCollection(fetch = FetchType.EAGER) @CollectionTable(name = "subject_email_addresses", joinColumns = { @JoinColumn(name = "subject_id")}) @@ -81,6 +82,7 @@ public class Subject implements Serializable { public Subject() { super(); + emailAddresses = new ArrayList<>(); grantedPermissions = new ArrayList<>(); } @@ -155,7 +157,7 @@ public class Subject implements Serializable { return false; } - return (subjectId == other.getSubjectId()); + return subjectId == other.getSubjectId(); } public boolean canEqual(final Object obj) { diff --git a/ccm-core/src/main/java/org/libreccm/core/User.java b/ccm-core/src/main/java/org/libreccm/core/User.java index 8c633410d..bcd64b0f8 100644 --- a/ccm-core/src/main/java/org/libreccm/core/User.java +++ b/ccm-core/src/main/java/org/libreccm/core/User.java @@ -141,6 +141,7 @@ public class User extends Subject implements Serializable { * the next login. */ @Column(name = "password_reset_required") + @SuppressWarnings("PMD.LongVariable") //Name is fine... private boolean passwordResetRequired; /** @@ -232,6 +233,7 @@ public class User extends Subject implements Serializable { return passwordResetRequired; } + @SuppressWarnings("PMD.LongVariable") public void setPasswordResetRequired(final boolean passwordResetRequired) { this.passwordResetRequired = passwordResetRequired; } diff --git a/ccm-core/src/main/java/org/libreccm/core/UserRepository.java b/ccm-core/src/main/java/org/libreccm/core/UserRepository.java index 8fefffb5e..c14646039 100644 --- a/ccm-core/src/main/java/org/libreccm/core/UserRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/UserRepository.java @@ -37,6 +37,9 @@ public class UserRepository extends AbstractEntityRepository { @Override public boolean isNew(final User entity) { + if (entity == null) { + throw new IllegalArgumentException("Can't save null."); + } return entity.getSubjectId() == 0; } @@ -47,16 +50,14 @@ public class UserRepository extends AbstractEntityRepository { final List result = query.getResultList(); + //Check if result list is empty and if not return the first element. + //If their ist a result than there can only be one because the + //screen_name column has a unique constraint. if (result.isEmpty()) { return null; - } else if (result.size() == 1) { + } else { return result.get(0); - } else { - throw new MultipleMatchingUserException(String.format( - "Found multipe users identified by screen name '%s'. " - + "Check your database.", - screenname)); - } + } } public User findByEmailAddress(final String emailAddress) { @@ -78,14 +79,5 @@ public class UserRepository extends AbstractEntityRepository { } } - private class MultipleMatchingUserException extends RuntimeException { - - private static final long serialVersionUID = 100237510055701060L; - - public MultipleMatchingUserException(final String message) { - super(message); - } - - } } diff --git a/ccm-core/src/site/site.xml b/ccm-core/src/site/site.xml index 3c6e867a3..8b30116e5 100644 --- a/ccm-core/src/site/site.xml +++ b/ccm-core/src/site/site.xml @@ -8,6 +8,7 @@ +