Program: 150955
Project: 150955
Buggy source:
public void process(double width,String inputPath,String outputName) throws FileNotFoundException {
  String inputName=new File(inputPath).getName();
  System.out.println("String_Node_Str" + width + "String_Node_Str"+ inputName);
  System.out.println("String_Node_Str" + inputPath);
  ImageUInt8 image=UtilImageIO.loadImage(inputPath,ImageUInt8.class);
  if (image == null) {
    System.err.println("String_Node_Str" + inputPath);
    System.exit(0);
  }
  int s=image.width - (image.width % 8);
  if (image.width != s || image.height != s) {
    ImageUInt8 tmp=new ImageUInt8(s,s);
    new FDistort(image,tmp).scaleExt().apply();
    image=tmp;
  }
  out=new PrintStream(outputName);
  targetLength=width * CM_TO_POINTS;
  whiteBorder=Math.max(2 * CM_TO_POINTS,targetLength / 4.0);
  blackBorder=targetLength / 4.0;
  innerWidth=targetLength / 2.0;
  pageLength=targetLength + whiteBorder * 2;
  scale=image.width / innerWidth;
  ImageUInt8 binary=ThresholdImageOps.threshold(image,null,threshold,false);
  if (showPreview)   ShowImages.showWindow(VisualizeBinaryData.renderBinary(binary,false,null),"String_Node_Str");
  printHeader(inputName);
  out.println();
  out.print("String_Node_Str" + "String_Node_Str" + binary.width + "String_Node_Str"+ binary.height+ "String_Node_Str"+ scale+ "String_Node_Str"+ scale+ "String_Node_Str"+ "String_Node_Str"+ binaryToHex(binary)+ "String_Node_Str"+ "String_Node_Str");
  out.println();
  out.print("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  for (int row=0; row < numRows; row++) {
    for (int col=0; col < numCols; col++) {
      insertFiducial(row,col,binary,inputName);
    }
  }
  out.print("String_Node_Str" + "String_Node_Str");
  System.out.println("String_Node_Str" + new File(outputName).getAbsolutePath());
}

Fixed version (ground truth):
public void process(double width,String inputPath,String outputName) throws FileNotFoundException {
  this.width=width;
  String inputName=new File(inputPath).getName();
  System.out.println("String_Node_Str" + width + "String_Node_Str"+ inputName);
  System.out.println("String_Node_Str" + inputPath);
  ImageUInt8 image=UtilImageIO.loadImage(inputPath,ImageUInt8.class);
  if (image == null) {
    System.err.println("String_Node_Str" + inputPath);
    System.exit(0);
  }
  int s=image.width - (image.width % 8);
  if (image.width != s || image.height != s) {
    ImageUInt8 tmp=new ImageUInt8(s,s);
    new FDistort(image,tmp).scaleExt().apply();
    image=tmp;
  }
  out=new PrintStream(outputName);
  targetLength=width * CM_TO_POINTS;
  whiteBorder=Math.max(2 * CM_TO_POINTS,targetLength / 4.0);
  blackBorder=targetLength / 4.0;
  innerWidth=targetLength / 2.0;
  pageLength=targetLength + whiteBorder * 2;
  scale=image.width / innerWidth;
  ImageUInt8 binary=ThresholdImageOps.threshold(image,null,threshold,false);
  if (showPreview)   ShowImages.showWindow(VisualizeBinaryData.renderBinary(binary,false,null),"String_Node_Str");
  printHeader(inputName);
  out.println();
  out.print("String_Node_Str" + "String_Node_Str" + binary.width + "String_Node_Str"+ binary.height+ "String_Node_Str"+ scale+ "String_Node_Str"+ scale+ "String_Node_Str"+ "String_Node_Str"+ binaryToHex(binary)+ "String_Node_Str"+ "String_Node_Str");
  out.println();
  out.print("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  for (int row=0; row < numRows; row++) {
    for (int col=0; col < numCols; col++) {
      insertFiducial(row,col,inputName);
    }
  }
  out.print("String_Node_Str" + "String_Node_Str");
  System.out.println("String_Node_Str" + new File(outputName).getAbsolutePath());
}