Program: 113711
Project: 113711
Buggy source:
@Override public void startRequest(MRCRequest rq){
  try {
    final listxattrRequest rqArgs=(listxattrRequest)rq.getRequestArgs();
    final VolumeManager vMan=master.getVolumeManager();
    final FileAccessManager faMan=master.getFileAccessManager();
    validateContext(rq);
    final Path p=new Path(rqArgs.getPath());
    final VolumeInfo volume=vMan.getVolumeByName(p.getComp(0));
    final StorageManager sMan=vMan.getStorageManager(volume.getId());
    final PathResolver res=new PathResolver(sMan,p);
    faMan.checkSearchPermission(sMan,res,rq.getDetails().userId,rq.getDetails().superUser,rq.getDetails().groupIds);
    res.checkIfFileDoesNotExist();
    FileMetadata file=res.getFile();
    HashSet<String> attrNames=new HashSet<String>();
    Iterator<XAttr> myAttrs=sMan.getXAttrs(file.getId(),rq.getDetails().userId);
    Iterator<XAttr> globalAttrs=sMan.getXAttrs(file.getId(),StorageManager.GLOBAL_ID);
    while (globalAttrs.hasNext())     attrNames.add(globalAttrs.next().getKey());
    while (myAttrs.hasNext())     attrNames.add(myAttrs.next().getKey());
    for (    SysAttrs attr : SysAttrs.values()) {
      String key="String_Node_Str" + attr.toString();
      Object value=MRCHelper.getSysAttrValue(master.getConfig(),sMan,master.getOSDStatusManager(),volume,res.toString(),file,attr.toString());
      if (!value.equals("String_Node_Str"))       attrNames.add(key);
    }
    StringSet names=new StringSet();
    Iterator<String> it=attrNames.iterator();
    while (it.hasNext())     names.add(it.next());
    rq.setResponse(new listxattrResponse(names));
    finishRequest(rq);
  }
 catch (  UserException exc) {
    Logging.logMessage(Logging.LEVEL_TRACE,this,exc);
    finishRequest(rq,new ErrorRecord(ErrorClass.USER_EXCEPTION,exc.getErrno(),exc.getMessage(),exc));
  }
catch (  Exception exc) {
    finishRequest(rq,new ErrorRecord(ErrorClass.INTERNAL_SERVER_ERROR,"String_Node_Str",exc));
  }
}

Fixed version (ground truth):
@Override public void startRequest(MRCRequest rq){
  try {
    final listxattrRequest rqArgs=(listxattrRequest)rq.getRequestArgs();
    final VolumeManager vMan=master.getVolumeManager();
    final FileAccessManager faMan=master.getFileAccessManager();
    validateContext(rq);
    final Path p=new Path(rqArgs.getPath());
    final VolumeInfo volume=vMan.getVolumeByName(p.getComp(0));
    final StorageManager sMan=vMan.getStorageManager(volume.getId());
    final PathResolver res=new PathResolver(sMan,p);
    faMan.checkSearchPermission(sMan,res,rq.getDetails().userId,rq.getDetails().superUser,rq.getDetails().groupIds);
    res.checkIfFileDoesNotExist();
    FileMetadata file=res.getFile();
    HashSet<String> attrNames=new HashSet<String>();
    Iterator<XAttr> myAttrs=sMan.getXAttrs(file.getId(),rq.getDetails().userId);
    Iterator<XAttr> globalAttrs=sMan.getXAttrs(file.getId(),StorageManager.GLOBAL_ID);
    while (globalAttrs.hasNext())     attrNames.add(globalAttrs.next().getKey());
    while (myAttrs.hasNext())     attrNames.add(myAttrs.next().getKey());
    for (    SysAttrs attr : SysAttrs.values()) {
      String key="String_Node_Str" + attr.toString();
      Object value=MRCHelper.getSysAttrValue(master.getConfig(),sMan,master.getOSDStatusManager(),volume,res.toString(),file,attr.toString());
      if (!value.equals("String_Node_Str"))       attrNames.add(key);
    }
    StringSet names=new StringSet();
    Iterator<String> it=attrNames.iterator();
    while (it.hasNext())     names.add(it.next());
    rq.setResponse(new listxattrResponse(names));
    finishRequest(rq);
  }
 catch (  UserException exc) {
    Logging.logMessage(Logging.LEVEL_TRACE,this,exc);
    finishRequest(rq,new ErrorRecord(ErrorClass.USER_EXCEPTION,exc.getErrno(),exc.getMessage(),exc));
  }
catch (  Throwable exc) {
    finishRequest(rq,new ErrorRecord(ErrorClass.INTERNAL_SERVER_ERROR,"String_Node_Str",exc));
  }
}