Program: 14124
Project: 14124
Buggy source:
public static void validateParameter(StackEntity.Parameter parameter,TemplateParser.ParameterType parameterType,String effectiveUserId) throws Exception {
  if (parameterType == null)   throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
  if (parameterType == TemplateParser.ParameterType.AWS_EC2_KeyPair_KeyName || parameterType == TemplateParser.ParameterType.List_AWS_EC2_KeyPair_KeyName) {
    List<String> keyPairNames=AWSParameterTypeValidationHelper.getKeyPairKeyNames(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_KeyPair_KeyName) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!keyPairNames.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + parameter.getKey() + "String_Node_Str"+ valueToCheck+ "String_Node_Str");
      }
    }
  }
 else   if (parameterType == TemplateParser.ParameterType.AWS_EC2_SecurityGroup_Id || parameterType == TemplateParser.ParameterType.List_AWS_EC2_SecurityGroup_Id) {
    List<String> securityGroupIds=AWSParameterTypeValidationHelper.getSecurityGroupIds(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_SecurityGroup_Id) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!securityGroupIds.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + parameter.getKey() + "String_Node_Str"+ valueToCheck+ "String_Node_Str");
      }
    }
  }
 else   if (parameterType == TemplateParser.ParameterType.AWS_EC2_Subnet_Id || parameterType == TemplateParser.ParameterType.List_AWS_EC2_Subnet_Id) {
    List<String> subnetIds=AWSParameterTypeValidationHelper.getSecurityGroupIds(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_Subnet_Id) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!subnetIds.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + parameter.getKey() + "String_Node_Str"+ valueToCheck+ "String_Node_Str");
      }
    }
  }
 else {
    ;
  }
}

Fixed version (ground truth):
public static void validateParameter(StackEntity.Parameter parameter,TemplateParser.ParameterType parameterType,String effectiveUserId) throws Exception {
  if (parameterType == null)   throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
  if (parameterType == TemplateParser.ParameterType.AWS_EC2_KeyPair_KeyName || parameterType == TemplateParser.ParameterType.List_AWS_EC2_KeyPair_KeyName) {
    List<String> keyPairNames=AWSParameterTypeValidationHelper.getKeyPairKeyNames(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_KeyPair_KeyName) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!keyPairNames.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + valueToCheck + "String_Node_Str"+ parameter.getKey()+ "String_Node_Str");
      }
    }
  }
 else   if (parameterType == TemplateParser.ParameterType.AWS_EC2_SecurityGroup_Id || parameterType == TemplateParser.ParameterType.List_AWS_EC2_SecurityGroup_Id) {
    List<String> securityGroupIds=AWSParameterTypeValidationHelper.getSecurityGroupIds(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_SecurityGroup_Id) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!securityGroupIds.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + valueToCheck + "String_Node_Str"+ parameter.getKey()+ "String_Node_Str");
      }
    }
  }
 else   if (parameterType == TemplateParser.ParameterType.AWS_EC2_Subnet_Id || parameterType == TemplateParser.ParameterType.List_AWS_EC2_Subnet_Id) {
    List<String> subnetIds=AWSParameterTypeValidationHelper.getSubnetIds(effectiveUserId);
    JsonNode jsonNode=JsonHelper.getJsonNodeFromString(parameter.getJsonValue());
    List<String> valuesToCheck=Lists.newArrayList();
    if (parameterType == TemplateParser.ParameterType.AWS_EC2_Subnet_Id) {
      if (!jsonNode.isValueNode())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      valuesToCheck.add(jsonNode.asText());
    }
 else {
      if (!jsonNode.isArray())       throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
      for (int i=0; i < jsonNode.size(); i++) {
        JsonNode elementNode=jsonNode.get(i);
        if (!elementNode.isValueNode())         throw new ValidationErrorException("String_Node_Str" + parameter.getKey());
        valuesToCheck.add(elementNode.asText());
      }
    }
    for (    String valueToCheck : valuesToCheck) {
      if (!subnetIds.contains(valueToCheck)) {
        throw new ValidationErrorException("String_Node_Str" + valueToCheck + "String_Node_Str"+ parameter.getKey()+ "String_Node_Str");
      }
    }
  }
 else {
    ;
  }
}