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);
}
}
}