Program: 141383
Project: 141383
Buggy source:
/** 
 * Upload the file.
 */
public void upload(){
  logger.info("String_Node_Str" + s3url.getSource());
  final ObjectMetadata md=new ObjectMetadata();
  if (this.metadata.getContentType() != null)   md.setContentType(this.metadata.getContentType());
  if (this.metadata.getContentEncoding() != null)   md.setContentEncoding(this.metadata.getContentEncoding());
  md.setContentLength(this.metadata.getContentLength());
  final PutObjectRequest or=new PutObjectRequest(s3url.bucket,s3url.getFilePath(),this.is,md);
  logger.info("String_Node_Str" + this.s3url + "String_Node_Str"+ md.getContentType()+ "String_Node_Str"+ md.getContentEncoding()+ "String_Node_Str"+ this.metadata.getContentLength()+ "String_Node_Str");
  int tryCount=0;
  boolean uploadOk=false;
  final long start=System.currentTimeMillis();
  AmazonClientException ace=null;
  do {
    tryCount++;
    try {
      s3.putObject(or);
      uploadOk=true;
    }
 catch (    AmazonClientException e) {
      ace=e;
      logger.info("String_Node_Str" + this.s3url + "String_Node_Str"+ tryCount+ "String_Node_Str");
      try {
        Thread.sleep(10000);
      }
 catch (      InterruptedException e1) {
        e1.printStackTrace();
      }
    }
  }
 while (!uploadOk && tryCount < 3);
  if (!uploadOk)   throw ace;
  final long end=System.currentTimeMillis();
  final long duration=end - start;
  final int speedKiB=(int)(this.metadata.getContentLength() / (duration / 1000.0) / 1024.0);
  logger.info("String_Node_Str" + this.s3url + "String_Node_Str"+ this.metadata.getContentLength()+ "String_Node_Str"+ StringUtils.toTimeHumanReadable(duration)+ "String_Node_Str"+ speedKiB+ "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Upload the file.
 */
public void upload(){
  LOGGER.info("String_Node_Str" + s3url.getSource());
  final ObjectMetadata md=new ObjectMetadata();
  if (this.metadata.getContentType() != null)   md.setContentType(this.metadata.getContentType());
  if (this.metadata.getContentEncoding() != null)   md.setContentEncoding(this.metadata.getContentEncoding());
  md.setContentLength(this.metadata.getContentLength());
  final PutObjectRequest or=new PutObjectRequest(s3url.bucket,s3url.getFilePath(),this.is,md);
  LOGGER.fine("String_Node_Str" + this.s3url + "String_Node_Str"+ md.getContentType()+ "String_Node_Str"+ md.getContentEncoding()+ "String_Node_Str"+ this.metadata.getContentLength()+ "String_Node_Str");
  int tryCount=0;
  boolean uploadOk=false;
  final long start=System.currentTimeMillis();
  AmazonClientException ace=null;
  do {
    tryCount++;
    try {
      getS3().putObject(or);
      uploadOk=true;
    }
 catch (    AmazonClientException e) {
      ace=e;
      LOGGER.warning("String_Node_Str" + this.s3url + "String_Node_Str"+ tryCount+ "String_Node_Str");
      try {
        Thread.sleep(10000);
      }
 catch (      InterruptedException e1) {
        e1.printStackTrace();
      }
    }
  }
 while (!uploadOk && tryCount < 3);
  if (!uploadOk)   throw ace;
  final long end=System.currentTimeMillis();
  final long duration=end - start;
  final int speedKiB=(int)(this.metadata.getContentLength() / (duration / 1000.0) / 1024.0);
  LOGGER.info("String_Node_Str" + this.s3url + "String_Node_Str"+ this.metadata.getContentLength()+ "String_Node_Str"+ StringUtils.toTimeHumanReadable(duration)+ "String_Node_Str"+ speedKiB+ "String_Node_Str");
}