Program: 102560
Project: 102560
Buggy source:
/** 
 * Get activities of a defined identity which can be a user identity, a space identity, or any type of identities. There is one special _identityId_ called "me" which stands for the authenticated user who makes this request.
 * @param uriInfo             The URI information.
 * @param portalContainerName The portal container name.
 * @param identityId          The identity id.There is one special identityId: "me" standing for the authenticated user who make this request.
 * @param format              The response format type, for example: JSON, or XML.
 * @param limit               The number of activities retrieved with the default value of 100. This input value mustbe less than or equal to its default value (100). The number of the returned results is actually less than or equal to the *limit* value. If no specified, 100 will be the default value.
 * @param sinceId             Return the activities having the created timestamps greater than the specified*since\_id*_'s created timestamp.
 * @param maxId               Return the activities having the created timestamps less than the specified *max\_id*'screated timestamp. Note that *since\_id* and *max\_id* must not be defined in one request, if they are, the *since\_id* query param is chosen.
 * @param numberOfComments    Specify the number of latest comments to be displayed along with each activity.By default, *number\_of\_comments=0*. If *number\_of\_comments* is a positive number, this number is considered as a limit number that must be equal or less than 100. If the total number of comments is less than the provided positive number, the number of actual comments must be returned. If the total number of comments is more than 100, it is recommended to use _activity/\:activityId/comments.format_ instead.
 * @param numberOfLikes       Specify the number of latest detailed likes to be returned along with this activity.By default, *number\_of\_likes=0*. If *number\_of\_likes* is a positive number, this number is considered as a limit number that must be equal or less than 100. If the total number of likes is less than the provided positive number, the number of actual likes must be returned. If the total number of likes is more than 100, it is recommended to use _activity/\:activityId/likes.format_ instead.
 * @anchor SOCref.DevRef.V1alpha3.ActivityStreamResource.Identity.GetDefault
 * @authenticated
 * @request {code} GET: http://cloud-workspaces.com/rest/private/api/social/v1-alpha3/socialdemo/activity_stream/f92cd6f0c0a80137102696ac26430766.json?limit=30&since_id=12345&number_of_likes=5 {code}
 * @response {code:json} { "activities":[ { "id":"1a2b3c4d5e6f7g8h9j", "title":"Hello World!!!", "appId":"", "type":"DEFAULT_ACTIVITY", "postedTime":123456789, "createdAt":"Fri Jun 17 06:42:26 +0000 2011", "priority":0.5, "templateParams":{ }, "titleId": "", "body": "", "identityId":"123456789abcdefghi", "liked":true, "likedByIdentities":[ { "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } } ], "totalNumberOfLikes":20, "posterIdentity":{ "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } }, "comments":[ { } ], "totalNumberOfComments":1234, "activityStream":{ "type":"user", "prettyId":"root", "fullName": "Root Root", "faviconUrl":"http://demo3.exoplatform.org/favicons/exo-default.jpg", "title":"Activity Stream of Root Root", "permaLink":"http://localhost:8080/profile/root" } }, { "id":"1a210983123f7g8h9j", "title":"Hello World 1!!!", "appId":"", "type":"DEFAULT_ACTIVITY", "postedTime":123456789, "createdAt":"Fri Jun 19 06:42:26 +0000 2011", "priority":0.5, "templateParams":{ }, "titleId":"", "body": "", "identityId":"123456789abcdefghi", "liked":true, "likedByIdentities":[ { "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } } ], "totalNumberOfLikes":20, "posterIdentity":{ "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } }, "comments":[ { } ], "totalNumberOfComments":1234, "activityStream":{ "type":"user", "prettyId":"root", "fullName": "Root Root", "faviconUrl":"http://demo3.exoplatform.org/favicons/exo-default.jpg", "title":"Activity Stream of Root Root", "permaLink":"http://localhost:8080/profile/root" } } ] } {code}
 * @return the response
 */
@GET @Path("String_Node_Str") @Produces(MediaType.APPLICATION_JSON) public Response getActivityStreamByIdentityId(@Context UriInfo uriInfo,@PathParam("String_Node_Str") String portalContainerName,@PathParam("String_Node_Str") String identityId,@PathParam("String_Node_Str") String format,@QueryParam("String_Node_Str") int limit,@QueryParam("String_Node_Str") String sinceId,@QueryParam("String_Node_Str") String maxId,@QueryParam("String_Node_Str") int numberOfComments,@QueryParam("String_Node_Str") int numberOfLikes){
  checkAuthenticatedRequest();
  PortalContainer portalContainer=checkValidPortalContainerName(portalContainerName);
  MediaType mediaType=checkSupportedFormat(format,SUPPORTED_FORMATS);
  Identity targetIdentity;
  if ("String_Node_Str".equals(identityId)) {
    targetIdentity=Util.getAuthenticatedUserIdentity(portalContainerName);
  }
 else {
    targetIdentity=Util.getIdentityManager(portalContainerName).getIdentity(identityId,false);
  }
  if (targetIdentity == null) {
    throw new WebApplicationException(Response.Status.NOT_FOUND);
  }
  boolean canAccess=SecurityManager.canAccessActivityStream(portalContainer,Util.getAuthenticatedUserIdentity(portalContainerName),targetIdentity);
  if (!canAccess) {
    throw new WebApplicationException(Response.Status.FORBIDDEN);
  }
  int maxLimit=limit <= 0 ? MAX_LIMIT : Math.min(limit,MAX_LIMIT);
  ExoSocialActivity baseActivity=null;
  boolean getOlder=false;
  ActivityManager activityManager=Util.getActivityManager(portalContainerName);
  try {
    if (sinceId != null) {
      baseActivity=activityManager.getActivity(sinceId);
    }
 else     if (maxId != null) {
      getOlder=true;
      baseActivity=activityManager.getActivity(maxId);
    }
  }
 catch (  UndeclaredThrowableException udte) {
    if (udte.getCause() instanceof ActivityStorageException) {
      throw new WebApplicationException(Response.Status.NOT_FOUND);
    }
 else {
      throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
    }
  }
  RealtimeListAccess<ExoSocialActivity> rala=activityManager.getActivitiesWithListAccess(targetIdentity);
  List<ExoSocialActivity> activityList;
  if (getOlder) {
    activityList=rala.loadOlder(baseActivity,maxLimit);
  }
 else   if (sinceId != null) {
    activityList=rala.loadNewer(baseActivity,maxLimit);
  }
 else {
    activityList=rala.loadAsList(0,maxLimit);
  }
  ActivityRestListOut arlo=new ActivityRestListOut(activityList,numberOfComments,numberOfLikes,portalContainerName);
  return Util.getResponse(arlo,uriInfo,mediaType,Response.Status.OK);
}

Fixed version (ground truth):
/** 
 * Get activities of a defined identity which can be a user identity, a space identity, or any type of identities. There is one special _identityId_ called "me" which stands for the authenticated user who makes this request.
 * @param uriInfo             The URI information.
 * @param portalContainerName The portal container name.
 * @param identityId          The identity id.There is one special identityId: "me" standing for the authenticated user who make this request.
 * @param format              The response format type, for example: JSON, or XML.
 * @param limit               The number of activities retrieved with the default value of 100. This input value mustbe less than or equal to its default value (100). The number of the returned results is actually less than or equal to the _limit_ value. If no specified, 100 will be the default value.
 * @param sinceId             Return the activities having the created timestamps greater than the specified_since\_id_'s created timestamp.
 * @param maxId               Return the activities having the created timestamps less than the specified _max\_id_'screated timestamp. Note that _since\_id_ and _max\_id_ must not be defined in one request, if they are, the _since\_id_ query param is chosen.
 * @param numberOfComments    Specify the number of latest comments to be displayed along with each activity.By default, _number\_of\_comments=0_. If _number\_of\_comments_ is a positive number, this number is considered as a limit number that must be equal or less than 100. If the total number of comments is less than the provided positive number, the number of actual comments must be returned. If the total number of comments is more than 100, it is recommended to use _activity/\:activityId/comments.format_ instead.
 * @param numberOfLikes       Specify the number of latest detailed likes to be returned along with this activity.By default, _number\_of\_likes=0_. If _number\_of\_likes_ is a positive number, this number is considered as a limit number that must be equal or less than 100. If the total number of likes is less than the provided positive number, the number of actual likes must be returned. If the total number of likes is more than 100, it is recommended to use _activity/\:activityId/likes.format_ instead.
 * @anchor SOCref.DevRef.V1alpha3.ActivityStreamResource.Identity.GetDefault
 * @authenticated
 * @request {code} GET: http://cloud-workspaces.com/rest/private/api/social/v1-alpha3/socialdemo/activity_stream/f92cd6f0c0a80137102696ac26430766.json?limit=30&since_id=12345&number_of_likes=5 {code}
 * @response {code:json} { "activities":[ { "id":"1a2b3c4d5e6f7g8h9j", "title":"Hello World!!!", "appId":"", "type":"DEFAULT_ACTIVITY", "postedTime":123456789, "createdAt":"Fri Jun 17 06:42:26 +0000 2011", "priority":0.5, "templateParams":{ }, "titleId": "", "body": "", "identityId":"123456789abcdefghi", "liked":true, "likedByIdentities":[ { "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } } ], "totalNumberOfLikes":20, "posterIdentity":{ "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } }, "comments":[ { } ], "totalNumberOfComments":1234, "activityStream":{ "type":"user", "prettyId":"root", "fullName": "Root Root", "faviconUrl":"http://demo3.exoplatform.org/favicons/exo-default.jpg", "title":"Activity Stream of Root Root", "permaLink":"http://localhost:8080/profile/root" } }, { "id":"1a210983123f7g8h9j", "title":"Hello World 1!!!", "appId":"", "type":"DEFAULT_ACTIVITY", "postedTime":123456789, "createdAt":"Fri Jun 19 06:42:26 +0000 2011", "priority":0.5, "templateParams":{ }, "titleId":"", "body": "", "identityId":"123456789abcdefghi", "liked":true, "likedByIdentities":[ { "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } } ], "totalNumberOfLikes":20, "posterIdentity":{ "id":"123456313efghi", "providerId":"organization", "remoteId":"demo", "profile":{ "fullName":"Demo GTN", "avatarUrl":"http://localhost:8080/profile/u/demo/avatar.jpg?u=12345" } }, "comments":[ { } ], "totalNumberOfComments":1234, "activityStream":{ "type":"user", "prettyId":"root", "fullName": "Root Root", "faviconUrl":"http://demo3.exoplatform.org/favicons/exo-default.jpg", "title":"Activity Stream of Root Root", "permaLink":"http://localhost:8080/profile/root" } } ] } {code}
 * @return the response
 */
@GET @Path("String_Node_Str") @Produces(MediaType.APPLICATION_JSON) public Response getActivityStreamByIdentityId(@Context UriInfo uriInfo,@PathParam("String_Node_Str") String portalContainerName,@PathParam("String_Node_Str") String identityId,@PathParam("String_Node_Str") String format,@QueryParam("String_Node_Str") int limit,@QueryParam("String_Node_Str") String sinceId,@QueryParam("String_Node_Str") String maxId,@QueryParam("String_Node_Str") int numberOfComments,@QueryParam("String_Node_Str") int numberOfLikes){
  checkAuthenticatedRequest();
  PortalContainer portalContainer=checkValidPortalContainerName(portalContainerName);
  MediaType mediaType=checkSupportedFormat(format,SUPPORTED_FORMATS);
  Identity targetIdentity;
  if ("String_Node_Str".equals(identityId)) {
    targetIdentity=Util.getAuthenticatedUserIdentity(portalContainerName);
  }
 else {
    targetIdentity=Util.getIdentityManager(portalContainerName).getIdentity(identityId,false);
  }
  if (targetIdentity == null) {
    throw new WebApplicationException(Response.Status.NOT_FOUND);
  }
  boolean canAccess=SecurityManager.canAccessActivityStream(portalContainer,Util.getAuthenticatedUserIdentity(portalContainerName),targetIdentity);
  if (!canAccess) {
    throw new WebApplicationException(Response.Status.FORBIDDEN);
  }
  int maxLimit=limit <= 0 ? MAX_LIMIT : Math.min(limit,MAX_LIMIT);
  ExoSocialActivity baseActivity=null;
  boolean getOlder=false;
  ActivityManager activityManager=Util.getActivityManager(portalContainerName);
  try {
    if (sinceId != null) {
      baseActivity=activityManager.getActivity(sinceId);
    }
 else     if (maxId != null) {
      getOlder=true;
      baseActivity=activityManager.getActivity(maxId);
    }
  }
 catch (  UndeclaredThrowableException udte) {
    if (udte.getCause() instanceof ActivityStorageException) {
      throw new WebApplicationException(Response.Status.NOT_FOUND);
    }
 else {
      throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
    }
  }
  RealtimeListAccess<ExoSocialActivity> rala=activityManager.getActivitiesWithListAccess(targetIdentity);
  List<ExoSocialActivity> activityList;
  if (getOlder) {
    activityList=rala.loadOlder(baseActivity,maxLimit);
  }
 else   if (sinceId != null) {
    activityList=rala.loadNewer(baseActivity,maxLimit);
  }
 else {
    activityList=rala.loadAsList(0,maxLimit);
  }
  ActivityRestListOut arlo=new ActivityRestListOut(activityList,numberOfComments,numberOfLikes,portalContainerName);
  return Util.getResponse(arlo,uriInfo,mediaType,Response.Status.OK);
}