Author: lindner
Date: Mon Nov 15 18:26:20 2010
New Revision: 1035388

URL: http://svn.apache.org/viewvc?rev=1035388&view=rev
Log:
SHINDIG-1468 | ActivityStreams REST API Bug

Modified:
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java?rev=1035388&r1=1035387&r2=1035388&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
 Mon Nov 15 18:26:20 2010
@@ -164,7 +164,6 @@ public class ActivityStreamsJsonDbServic
       CollectionOptions options, SecurityToken token)
       throws ProtocolException {
       List<ActivityEntry> result = Lists.newArrayList();
-      
     try {
       Set<String> idSet = jsonDb.getIdSet(userIds, groupId, token);
       for (String id : idSet) {
@@ -188,18 +187,25 @@ public class ActivityStreamsJsonDbServic
       UserId userId, GroupId groupId, String appId, Set<String> fields,
       CollectionOptions options, Set<String> activityIds, SecurityToken token)
       throws ProtocolException {
-    List<ActivityEntry> result = Lists.newArrayList();
+    List<ActivityEntry> result = Lists.newArrayList();    
     try {
       String user = userId.getUserId(token);
       if (db.getJSONObject(ACTIVITYSTREAMS_TABLE).has(user)) {
         JSONArray activityEntries = 
db.getJSONObject(ACTIVITYSTREAMS_TABLE).getJSONArray(user);
-        for (int i = 0; i < activityEntries.length(); i++) {
-          JSONObject activityEntry = activityEntries.getJSONObject(i);
-          JSONObject actor = new 
JSONObject(activityEntry.get(ActivityEntry.Field.ACTOR.toString()));
-          String actorId = 
actor.get(ActivityObject.Field.ID.toString()).toString();
-          if (actorId.equals(user)
-            && 
activityIds.contains(activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString()).toString()))
 {
-            result.add(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
+        for(String activityId : activityIds) {
+          boolean found = false;
+          for (int i = 0; i < activityEntries.length(); i++) {
+            JSONObject activityEntry = activityEntries.getJSONObject(i);
+            String actorId = 
activityEntry.getJSONObject(ActivityEntry.Field.ACTOR.toString()).getString(ActivityObject.Field.ID.toString());
+            String objectId = 
activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString());
+            if (actorId.equals(user) && objectId.equals(activityId)) {
+              result.add(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
+              found = true;
+              break;
+            }
+          }
+          if (!found) {
+            throw new ProtocolException(HttpServletResponse.SC_NOT_FOUND, 
"ActivityEntry not found: " + activityId);
           }
         }
       }


Reply via email to