Program: 95792
Project: 95792
Buggy source:
@Override public boolean perform(AbstractBuild build,Launcher launcher,BuildListener listener) throws IOException, InterruptedException {
  this.logger=listener.getLogger();
  final boolean buildFailed=build.getResult() == Result.FAILURE;
  if (buildFailed) {
    logger.println("String_Node_Str");
    return true;
  }
  AWSClients aws;
  if ("String_Node_Str".equals(credentials)) {
    if (StringUtils.isEmpty(this.awsAccessKey) && StringUtils.isEmpty(this.awsSecretKey)) {
      aws=AWSClients.fromDefaultCredentialChain(this.region,this.proxyHost,this.proxyPort);
    }
 else {
      aws=AWSClients.fromBasicCredentials(this.region,this.awsAccessKey,this.awsSecretKey,this.proxyHost,this.proxyPort);
    }
  }
 else {
    aws=AWSClients.fromIAMRole(this.region,this.iamRoleArn,this.getDescriptor().getExternalId(),this.proxyHost,this.proxyPort);
  }
  boolean success;
  try {
    Map<String,String> envVars=build.getEnvironment(listener);
    this.deploymentGroupName=Util.replaceMacro(this.deploymentGroupName,envVars);
    verifyCodeDeployApplication(aws);
    String projectName=build.getProject().getName();
    RevisionLocation revisionLocation=zipAndUpload(aws,projectName,getSourceDirectory(build.getWorkspace()),envVars);
    registerRevision(aws,revisionLocation);
    String deploymentId=createDeployment(aws,revisionLocation);
    success=waitForDeployment(aws,deploymentId);
  }
 catch (  Exception e) {
    this.logger.println("String_Node_Str");
    this.logger.println(e.getMessage());
    e.printStackTrace(this.logger);
    success=false;
  }
  return success;
}

Fixed version (ground truth):
@Override public boolean perform(AbstractBuild build,Launcher launcher,BuildListener listener) throws IOException, InterruptedException {
  this.logger=listener.getLogger();
  final boolean buildFailed=build.getResult() == Result.FAILURE;
  if (buildFailed) {
    logger.println("String_Node_Str");
    return true;
  }
  AWSClients aws;
  if ("String_Node_Str".equals(credentials)) {
    if (StringUtils.isEmpty(this.awsAccessKey) && StringUtils.isEmpty(this.awsSecretKey)) {
      aws=AWSClients.fromDefaultCredentialChain(this.region,this.proxyHost,this.proxyPort);
    }
 else {
      aws=AWSClients.fromBasicCredentials(this.region,this.awsAccessKey,this.awsSecretKey,this.proxyHost,this.proxyPort);
    }
  }
 else {
    aws=AWSClients.fromIAMRole(this.region,this.iamRoleArn,this.getDescriptor().getExternalId(),this.proxyHost,this.proxyPort);
  }
  boolean success;
  try {
    Map<String,String> envVars=build.getEnvironment(listener);
    String deploymentGroupName=Util.replaceMacro(this.deploymentGroupName,envVars);
    verifyCodeDeployApplication(aws,deploymentGroupName);
    String projectName=build.getProject().getName();
    RevisionLocation revisionLocation=zipAndUpload(aws,projectName,getSourceDirectory(build.getWorkspace()),envVars,deploymentGroupName);
    registerRevision(aws,revisionLocation);
    String deploymentId=createDeployment(aws,revisionLocation,deploymentGroupName);
    success=waitForDeployment(aws,deploymentId);
  }
 catch (  Exception e) {
    this.logger.println("String_Node_Str");
    this.logger.println(e.getMessage());
    e.printStackTrace(this.logger);
    success=false;
  }
  return success;
}