Scarab commit: svn commit: r11004 - trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java

[email protected] Fri, 23 Apr 2010 15:34:13 -0700 (PDT)
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: dabbous
Date: 2010-04-23 15:34:13-0700
New Revision: 11004

Modified:
   trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java

Log:
Duplicate Comments filter throws NPE when no comments in ActivitySet

Modified: trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java?view=diff&pathrev=11004&r1=11003&r2=11004
==============================================================================
--- trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java	(original)
+++ trunk/src/java/org/tigris/scarab/notification/ScarabNotificationManager.java	2010-04-23 15:34:13-0700
@@ -117,7 +117,8 @@
     {
         return NOTIFICATION_MANAGER_ID;
     }
-    
+
+    private static List<NotificationStatus> EMPTY_LIST = new ArrayList();    
     
     /**
      * Receives an activitySet from which to generate notification. Current
@@ -848,29 +849,38 @@
      * @param groupedActivities
      * @return
      */
-    private List<NotificationStatus> getUniqueCommentNotifications(
-            Map groupedActivities) {
+    private List<NotificationStatus> getUniqueCommentNotifications( Map groupedActivities) 
+    {
+        List<NotificationStatus> uniqueComments;
         List<NotificationStatus> comments = (List<NotificationStatus>)groupedActivities.get(L10NKeySet.ActivityComments);
-        Iterator<NotificationStatus> iter = comments.iterator();
-        List<NotificationStatus> uniqueComments = new ArrayList<NotificationStatus>();
-
-        List<Attachment> attachmentList = new ArrayList<Attachment>();
-        while(iter.hasNext())
+        if (comments == null)
         {
-            NotificationStatus notificationStatus = iter.next();
-            try {
-                Activity activity      = notificationStatus.getActivity();
-                Attachment attachment  = activity.getAttachment();
-                if(!attachmentList.contains(attachment))
+            uniqueComments = EMPTY_LIST;  // No comments in groupedActivities
+        }
+        else
+        {
+            Iterator<NotificationStatus> iter = comments.iterator();
+            uniqueComments = new ArrayList<NotificationStatus>();
+
+            List<Attachment> attachmentList = new ArrayList<Attachment>();
+            while(iter.hasNext())
+            {
+                NotificationStatus notificationStatus = iter.next();
+                try 
+                {
+                    Activity activity      = notificationStatus.getActivity();
+                    Attachment attachment  = activity.getAttachment();
+                    if(!attachmentList.contains(attachment))
+                    {
+                        attachmentList.add(attachment);
+                        uniqueComments.add(notificationStatus);
+                    }
+                }
+                catch (TorqueException e) 
                 {
-                    attachmentList.add(attachment);
                     uniqueComments.add(notificationStatus);
                 }
             }
-            catch (TorqueException e) 
-            {
-                uniqueComments.add(notificationStatus);
-            }
         }
         return uniqueComments;
     }

------------------------------------------------------
http://scarab.tigris.org/ds/viewMessage.do?dsForumId=3577&dsMessageId=2593840