Program: 15095
Project: 15095
Buggy source:
public static void modifyUser(User requestUser,ArrayList<String> keys,ArrayList<String> values) throws EucalyptusServiceException {
  try {
    int i=0;
    String userId=values.get(i++);
    String userName=values.get(i++);
    String path=values.get(i++);
    i++;
    String enabled=values.get(i++);
    i++;
    i++;
    i++;
    i++;
    i++;
    i++;
    Long expiration=Long.parseLong(values.get(i++));
    i++;
    i++;
    Map<String,String> newInfo=Maps.newHashMap();
    for (int k=i; k < values.size(); k++) {
      String key=keys.get(k);
      String value=values.get(k);
      if (!Strings.isNullOrEmpty(key)) {
        newInfo.put(key,value);
      }
    }
    User user=Accounts.lookupUserById(userId);
    if (user.isSystemAdmin()) {
      throw new EucalyptusServiceException("String_Node_Str");
    }
    EuarePermission.authorizeModifyUser(requestUser,user.getAccount(),user);
    if (!user.getName().equals(userName)) {
      user.setName(ValueCheckerFactory.createUserAndGroupNameChecker().check(userName));
    }
    if (user.getPath() != null && !user.getPath().equals(path)) {
      user.setPath(ValueCheckerFactory.createPathChecker().check(path));
    }
    if (!user.isEnabled().toString().equalsIgnoreCase(enabled)) {
      user.setEnabled(!user.isEnabled());
    }
    if (!user.getPasswordExpires().equals(expiration)) {
      user.setPasswordExpires(expiration);
    }
    user.setInfo(newInfo);
  }
 catch (  EucalyptusServiceException e) {
    LOG.debug(e,e);
    throw e;
  }
catch (  Exception e) {
    LOG.error("String_Node_Str" + keys + "String_Node_Str"+ values,e);
    LOG.debug(e,e);
    throw new EucalyptusServiceException("String_Node_Str" + keys + "String_Node_Str"+ values+ "String_Node_Str"+ e.getMessage());
  }
}

Fixed version (ground truth):
public static void modifyUser(User requestUser,ArrayList<String> keys,ArrayList<String> values) throws EucalyptusServiceException {
  try {
    int i=0;
    String userId=values.get(i++);
    String userName=values.get(i++);
    String path=values.get(i++);
    i++;
    String enabled=values.get(i++);
    i++;
    i++;
    i++;
    i++;
    i++;
    i++;
    Long expiration=Long.parseLong(values.get(i++));
    i++;
    i++;
    Map<String,String> newInfo=Maps.newHashMap();
    for (int k=i; k < values.size(); k++) {
      String key=keys.get(k);
      String value=values.get(k);
      if (!Strings.isNullOrEmpty(key)) {
        newInfo.put(key,value);
      }
    }
    User user=Accounts.lookupUserById(userId);
    if (user.isSystemAdmin() && user.isAccountAdmin()) {
      throw new EucalyptusServiceException("String_Node_Str");
    }
    EuarePermission.authorizeModifyUser(requestUser,user.getAccount(),user);
    if (!user.getName().equals(userName)) {
      user.setName(ValueCheckerFactory.createUserAndGroupNameChecker().check(userName));
    }
    if (user.getPath() != null && !user.getPath().equals(path)) {
      user.setPath(ValueCheckerFactory.createPathChecker().check(path));
    }
    if (!user.isEnabled().toString().equalsIgnoreCase(enabled)) {
      user.setEnabled(!user.isEnabled());
    }
    if (!user.getPasswordExpires().equals(expiration)) {
      user.setPasswordExpires(expiration);
    }
    user.setInfo(newInfo);
  }
 catch (  EucalyptusServiceException e) {
    LOG.debug(e,e);
    throw e;
  }
catch (  Exception e) {
    LOG.error("String_Node_Str" + keys + "String_Node_Str"+ values,e);
    LOG.debug(e,e);
    throw new EucalyptusServiceException("String_Node_Str" + keys + "String_Node_Str"+ values+ "String_Node_Str"+ e.getMessage());
  }
}