Yi EungJun 2015-02-03
Sync 'next' with 'master'
Reviewed-by: Suwon Chae 
@384e3594ad945e0a3ed64691c120f8b75c610402
app/models/PullRequest.java
--- app/models/PullRequest.java
+++ app/models/PullRequest.java
@@ -149,7 +149,7 @@
         joinColumns = @JoinColumn(name = "pull_request_id"),
         inverseJoinColumns = @JoinColumn(name = "user_id")
     )
-    public List<User> reviewers = new ArrayList<>();
+    public Set<User> reviewers = new HashSet<>();
 
     @OneToMany(mappedBy = "pullRequest")
     public List<CommentThread> commentThreads = new ArrayList<>();
@@ -999,7 +999,7 @@
     }
 
     public void clearReviewers() {
-        this.reviewers = new ArrayList<>();
+        this.reviewers = new HashSet<>();
         this.update();
     }
 
@@ -1008,8 +1008,9 @@
     }
 
     public void addReviewer(User user) {
-        this.reviewers.add(user);
-        this.update();
+        if(this.reviewers.add(user)) {
+            this.update();
+        }
     }
 
     public void removeReviewer(User user) {
app/models/User.java
--- app/models/User.java
+++ app/models/User.java
@@ -765,4 +765,24 @@
             return name + "(" + loginId + ")";
         }
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if(!(o instanceof User)) {
+            return false;
+        }
+        if(o == this) {
+            return true;
+        }
+        User user = (User) o;
+        return this.id.equals(user.id) && this.loginId.equals(user.loginId);
+    }
+
+    @Override
+    public int hashCode() {
+      int result = super.hashCode();
+      result = result * 37 + (this.id != null ? this.id.hashCode() : 0);
+      result = result * 37 + (this.loginId != null ? this.loginId.hashCode() : 0);
+      return result;
+    }
 }
app/views/common/usermenu.scala.html
--- app/views/common/usermenu.scala.html
+++ app/views/common/usermenu.scala.html
@@ -76,7 +76,7 @@
                         @Messages("title.logout")
                     </a>
                 </li>
-                @defining(UserApp.currentUser.getOrganizations(5)) { groups =>
+                @defining(UserApp.currentUser.getOrganizations(10)) { groups =>
                     <li class="title">
                         @Messages("title.organization")
                         <span class="numberic">@groups.size</span>
Add a comment
List