Program: 14213
Project: 14213
Buggy source:
public ValidateTemplateResponseType validateTemplate(ValidateTemplateType request) throws CloudFormationException {
  ValidateTemplateResponseType reply=request.getReply();
  try {
    final Context ctx=Contexts.lookup();
    checkActionPermission(PolicySpec.CLOUDFORMATION_VALIDATETEMPLATE,ctx);
    final User user=ctx.getUser();
    final String userId=user.getUserId();
    final String accountId=user.getAccount().getAccountNumber();
    final String templateBody=request.getTemplateBody();
    String stackName="String_Node_Str";
    if (stackName == null)     throw new ValidationErrorException("String_Node_Str");
    if (templateBody == null)     throw new ValidationErrorException("String_Node_Str");
    final String stackIdLocal=UUID.randomUUID().toString();
    final String stackId="String_Node_Str" + REGION + "String_Node_Str"+ accountId+ "String_Node_Str"+ stackName+ "String_Node_Str"+ stackIdLocal;
    final PseudoParameterValues pseudoParameterValues=new PseudoParameterValues();
    pseudoParameterValues.setAccountId(accountId);
    pseudoParameterValues.setStackName(stackName);
    pseudoParameterValues.setStackId(stackId);
    ArrayList<String> notificationArns=Lists.newArrayList();
    pseudoParameterValues.setRegion(REGION);
    final List<String> defaultRegionAvailabilityZones=describeAvailabilityZones(userId);
    final Map<String,List<String>> availabilityZones=Maps.newHashMap();
    availabilityZones.put(REGION,defaultRegionAvailabilityZones);
    availabilityZones.put("String_Node_Str",defaultRegionAvailabilityZones);
    pseudoParameterValues.setAvailabilityZones(availabilityZones);
    List<Parameter> parameters=Lists.newArrayList();
    final ValidateTemplateResult validateTemplateResult=new TemplateParser().validateTemplate(templateBody,parameters,pseudoParameterValues);
    reply.setValidateTemplateResult(validateTemplateResult);
  }
 catch (  Exception ex) {
    handleException(ex);
  }
  return reply;
}

Fixed version (ground truth):
public ValidateTemplateResponseType validateTemplate(ValidateTemplateType request) throws CloudFormationException {
  ValidateTemplateResponseType reply=request.getReply();
  try {
    final Context ctx=Contexts.lookup();
    checkActionPermission(PolicySpec.CLOUDFORMATION_VALIDATETEMPLATE,ctx);
    final User user=ctx.getUser();
    final String userId=user.getUserId();
    final String accountId=user.getAccount().getAccountNumber();
    final String templateBody=request.getTemplateBody();
    String stackName="String_Node_Str";
    if (stackName == null)     throw new ValidationErrorException("String_Node_Str");
    if (templateBody == null)     throw new ValidationErrorException("String_Node_Str");
    final String stackIdLocal=UUID.randomUUID().toString();
    final String stackId="String_Node_Str" + REGION + "String_Node_Str"+ accountId+ "String_Node_Str"+ stackName+ "String_Node_Str"+ stackIdLocal;
    final PseudoParameterValues pseudoParameterValues=new PseudoParameterValues();
    pseudoParameterValues.setAccountId(accountId);
    pseudoParameterValues.setStackName(stackName);
    pseudoParameterValues.setStackId(stackId);
    ArrayList<String> notificationArns=Lists.newArrayList();
    pseudoParameterValues.setRegion(REGION);
    final List<String> defaultRegionAvailabilityZones=describeAvailabilityZones(userId);
    final Map<String,List<String>> availabilityZones=Maps.newHashMap();
    availabilityZones.put(REGION,defaultRegionAvailabilityZones);
    availabilityZones.put("String_Node_Str",defaultRegionAvailabilityZones);
    pseudoParameterValues.setAvailabilityZones(availabilityZones);
    List<Parameter> parameters=Lists.newArrayList();
    final ValidateTemplateResult validateTemplateResult=new TemplateParser().validateTemplate(templateBody,parameters,pseudoParameterValues);
    reply.setValidateTemplateResult(validateTemplateResult);
  }
 catch (  Exception ex) {
    LOG.error(ex,ex);
    handleException(ex);
  }
  return reply;
}