Program: 89079
Project: 89079
Buggy source:
/** 
 * Helper method to add information about node
 * @param nodeInfo          node information
 * @param rootJSONObject    root JSON object
 */
@SuppressWarnings("String_Node_Str") private void addInfo(final FileInfo nodeInfo,JSONObject rootJSONObject){
  String itemType=(String)rootJSONObject.get("String_Node_Str");
  final QName itemTypeQName=QName.createQName(itemType,namespaceService);
  NodeRef originatingLocation=AuthenticationUtil.runAsSystem(new RunAsWork<NodeRef>(){
    public NodeRef doWork(){
      NodeRef originatingLocation=null;
      if (dictionaryService.isSubClass(itemTypeQName,ContentModel.TYPE_CONTENT)) {
        NodeRef nodeRef=nodeInfo.getNodeRef();
        List<ChildAssociationRef> parentAssocs=nodeService.getParentAssocs(nodeRef);
        for (        ChildAssociationRef parent : parentAssocs) {
          if (!parent.isPrimary()) {
            originatingLocation=parent.getParentRef();
            if (!nodeService.hasAspect(originatingLocation,RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT)) {
              break;
            }
          }
        }
      }
      return originatingLocation;
    }
  }
);
  if (originatingLocation != null) {
    String pathSeparator="String_Node_Str";
    String displayPath=getDisplayPath(originatingLocation);
    String[] displayPathElements=displayPath.split(pathSeparator);
    Object[] subPath=ArrayUtils.subarray(displayPathElements,5,displayPathElements.length);
    StringBuffer originatingLocationPath=new StringBuffer();
    for (int i=0; i < subPath.length; i++) {
      originatingLocationPath.append(pathSeparator).append(subPath[i]);
    }
    rootJSONObject.put("String_Node_Str",originatingLocationPath.toString());
  }
}

Fixed version (ground truth):
/** 
 * Helper method to add information about node
 * @param nodeInfo          node information
 * @param rootJSONObject    root JSON object
 */
@SuppressWarnings("String_Node_Str") private void addInfo(final FileInfo nodeInfo,JSONObject rootJSONObject){
  String itemType=(String)rootJSONObject.get("String_Node_Str");
  final QName itemTypeQName=QName.createQName(itemType,namespaceService);
  NodeRef originatingLocation=AuthenticationUtil.runAsSystem(new RunAsWork<NodeRef>(){
    public NodeRef doWork(){
      NodeRef originatingLocation=null;
      if (dictionaryService.isSubClass(itemTypeQName,ContentModel.TYPE_CONTENT)) {
        NodeRef nodeRef=nodeInfo.getNodeRef();
        List<ChildAssociationRef> parentAssocs=nodeService.getParentAssocs(nodeRef);
        for (        ChildAssociationRef parent : parentAssocs) {
          if (!parent.isPrimary()) {
            originatingLocation=parent.getParentRef();
            if (!nodeService.hasAspect(originatingLocation,RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT)) {
              break;
            }
          }
        }
      }
      return originatingLocation;
    }
  }
);
  if (originatingLocation != null) {
    String pathSeparator="String_Node_Str";
    String displayPath=getDisplayPath(originatingLocation);
    String[] displayPathElements=displayPath.split(pathSeparator);
    Object[] subPath=ArrayUtils.subarray(displayPathElements,5,displayPathElements.length);
    StringBuilder originatingLocationPath=new StringBuilder();
    for (int i=0; i < subPath.length; i++) {
      originatingLocationPath.append(pathSeparator).append(subPath[i]);
    }
    rootJSONObject.put("String_Node_Str",originatingLocationPath.toString());
  }
}