Program: 194077
Project: 194077
Buggy source:
/** 
 * Examine all users present on given mounted volume, and destroy data belonging to users that are no longer valid, or whose user ID has been recycled.
 */
private void reconcileUsers(String volumeUuid){
  final File[] files=Environment.getDataUserDirectory(volumeUuid).listFiles();
  if (ArrayUtils.isEmpty(files)) {
    Slog.d(TAG,"String_Node_Str" + volumeUuid);
    return;
  }
  for (  File file : files) {
    if (!file.isDirectory())     continue;
    final int userId;
    final UserInfo info;
    try {
      userId=Integer.parseInt(file.getName());
      info=sUserManager.getUserInfo(userId);
    }
 catch (    NumberFormatException e) {
      Slog.w(TAG,"String_Node_Str" + file);
      continue;
    }
    boolean destroyUser=false;
    if (info == null) {
      logCriticalInfo(Log.WARN,"String_Node_Str" + file + "String_Node_Str");
      destroyUser=true;
    }
 else {
      try {
        UserManagerService.enforceSerialNumber(file,info.serialNumber);
      }
 catch (      IOException e) {
        logCriticalInfo(Log.WARN,"String_Node_Str" + file + "String_Node_Str"+ e);
        destroyUser=true;
      }
    }
    if (destroyUser) {
synchronized (mInstallLock) {
        mInstaller.removeUserDataDirs(volumeUuid,userId);
      }
    }
  }
  final UserManager um=mContext.getSystemService(UserManager.class);
  for (  UserInfo user : um.getUsers()) {
    final File userDir=Environment.getDataUserDirectory(volumeUuid,user.id);
    if (userDir.exists())     continue;
    try {
      UserManagerService.prepareUserDirectory(mContext,volumeUuid,user.id);
      UserManagerService.enforceSerialNumber(userDir,user.serialNumber);
    }
 catch (    IOException e) {
      Log.wtf(TAG,"String_Node_Str" + volumeUuid,e);
    }
  }
}

Fixed version (ground truth):
/** 
 * Examine all users present on given mounted volume, and destroy data belonging to users that are no longer valid, or whose user ID has been recycled.
 */
private void reconcileUsers(String volumeUuid){
  final File[] files=FileUtils.listFilesOrEmpty(Environment.getDataUserDirectory(volumeUuid));
  for (  File file : files) {
    if (!file.isDirectory())     continue;
    final int userId;
    final UserInfo info;
    try {
      userId=Integer.parseInt(file.getName());
      info=sUserManager.getUserInfo(userId);
    }
 catch (    NumberFormatException e) {
      Slog.w(TAG,"String_Node_Str" + file);
      continue;
    }
    boolean destroyUser=false;
    if (info == null) {
      logCriticalInfo(Log.WARN,"String_Node_Str" + file + "String_Node_Str");
      destroyUser=true;
    }
 else {
      try {
        UserManagerService.enforceSerialNumber(file,info.serialNumber);
      }
 catch (      IOException e) {
        logCriticalInfo(Log.WARN,"String_Node_Str" + file + "String_Node_Str"+ e);
        destroyUser=true;
      }
    }
    if (destroyUser) {
synchronized (mInstallLock) {
        mInstaller.removeUserDataDirs(volumeUuid,userId);
      }
    }
  }
  final UserManager um=mContext.getSystemService(UserManager.class);
  for (  UserInfo user : um.getUsers()) {
    final File userDir=Environment.getDataUserDirectory(volumeUuid,user.id);
    if (userDir.exists())     continue;
    try {
      UserManagerService.prepareUserDirectory(mContext,volumeUuid,user.id);
      UserManagerService.enforceSerialNumber(userDir,user.serialNumber);
    }
 catch (    IOException e) {
      Log.wtf(TAG,"String_Node_Str" + volumeUuid,e);
    }
  }
}