Program: 91859
Project: 91859
Buggy source:
/** 
 * Transforms coordinates from the files given in argument or from the standard input stream.
 */
@Override public int run() throws Exception {
  parseArguments();
  if (outputFormat == Format.XML) {
    final String format=outputFormat.name();
    throw new InvalidOptionException(Errors.format(Errors.Keys.IncompatibleFormat_2,"String_Node_Str",format),format);
  }
  operation=CRS.findOperation(fetchCRS(Option.SOURCE_CRS),fetchCRS(Option.TARGET_CRS),null);
  outHeader=new TableAppender(new LineAppender(out),"String_Node_Str");
  outHeader.setMultiLinesCells(true);
  printHeader(Vocabulary.Keys.Source);
  printNameAndIdentifier(operation.getSourceCRS());
  printHeader(Vocabulary.Keys.Destination);
  printNameAndIdentifier(operation.getTargetCRS());
  printHeader(Vocabulary.Keys.Methods);
  printOperationMethods(operation,false);
  outHeader.nextLine();
  if (options.containsKey(Option.VERBOSE)) {
    final WKTFormat f=new WKTFormat(locale,timezone);
    f.setConvention(options.containsKey(Option.DEBUG) ? Convention.INTERNAL : convention);
    if (colors) {
      f.setColors(Colors.DEFAULT);
    }
    final CharSequence[] lines=CharSequences.splitOnEOL(f.format(operation.getMathTransform()));
    for (int i=0; i < lines.length; i++) {
      if (i == 0) {
        printHeader(Vocabulary.Keys.Details);
      }
 else {
        printCommentLinePrefix();
        outHeader.nextColumn();
      }
      outHeader.append(lines[i]);
      outHeader.nextLine();
    }
  }
  double accuracy=CRS.getLinearAccuracy(operation);
  if (accuracy >= 0) {
    if (accuracy == 0) {
      accuracy=Formulas.LINEAR_TOLERANCE;
    }
    printHeader(Vocabulary.Keys.Accuracy);
    if (colors) {
      outHeader.append(X364.FOREGROUND_YELLOW.sequence());
    }
    outHeader.append(Double.toString(accuracy));
    if (colors) {
      outHeader.append(X364.FOREGROUND_DEFAULT.sequence());
    }
    outHeader.append("String_Node_Str");
    outHeader.nextLine();
  }
  outHeader.flush();
  outHeader=null;
  final boolean useStandardInput=useStandardInput();
  if (useStandardInput || !files.isEmpty()) {
    computeDomainOfValidity();
    ordinateWidth=15;
    coordinateFormat=NumberFormat.getInstance(Locale.US);
    coordinateFormat.setGroupingUsed(false);
    computeNumFractionDigits(operation.getTargetCRS().getCoordinateSystem());
    out.println();
    printAxes(operation.getTargetCRS().getCoordinateSystem());
    out.println();
    if (useStandardInput) {
      final LineNumberReader in=new LineNumberReader(new InputStreamReader(System.in,encoding));
      try {
        transform(in,"String_Node_Str");
      }
  finally {
        in.close();
      }
    }
 else {
      for (      final String file : files) {
        final LineNumberReader in=new LineNumberReader(new InputStreamReader(new FileInputStream(file),encoding));
        try {
          transform(in,file);
        }
  finally {
          in.close();
        }
      }
    }
  }
  return 0;
}

Fixed version (ground truth):
/** 
 * Transforms coordinates from the files given in argument or from the standard input stream.
 */
@Override public int run() throws Exception {
  parseArguments();
  if (outputFormat == Format.XML) {
    final String format=outputFormat.name();
    throw new InvalidOptionException(Errors.format(Errors.Keys.IncompatibleFormat_2,"String_Node_Str",format),format);
  }
  final CoordinateReferenceSystem sourceCRS=fetchCRS(Option.SOURCE_CRS);
  final CoordinateReferenceSystem targetCRS=fetchCRS(Option.TARGET_CRS);
  GeographicBoundingBox areaOfInterest=null;
  List<double[]> points=Collections.emptyList();
  final boolean useStandardInput=useStandardInput();
  if (useStandardInput || !files.isEmpty()) {
    if (useStandardInput) {
      LineNumberReader in=new LineNumberReader(new InputStreamReader(System.in,encoding));
      try {
        points=readCoordinates(in,"String_Node_Str");
      }
  finally {
        in.close();
      }
    }
 else {
      for (      final String file : files) {
        LineNumberReader in=new LineNumberReader(new InputStreamReader(new FileInputStream(file),encoding));
        try {
          points=readCoordinates(in,file);
        }
  finally {
          in.close();
        }
      }
    }
    try {
      final GeographicCRS domainOfValidityCRS=ReferencingUtilities.toNormalizedGeographicCRS(sourceCRS);
      if (domainOfValidityCRS != null) {
        toDomainOfValidity=CRS.findOperation(sourceCRS,domainOfValidityCRS,null).getMathTransform();
        areaOfInterest=computeAreaOfInterest(points);
      }
    }
 catch (    FactoryException e) {
      warning(e);
    }
  }
  operation=CRS.findOperation(sourceCRS,targetCRS,areaOfInterest);
  outHeader=new TableAppender(new LineAppender(out),"String_Node_Str");
  outHeader.setMultiLinesCells(true);
  printHeader(Vocabulary.Keys.Source);
  printNameAndIdentifier(operation.getSourceCRS(),false);
  printHeader(Vocabulary.Keys.Destination);
  printNameAndIdentifier(operation.getTargetCRS(),false);
  printHeader(Vocabulary.Keys.Operations);
  printOperations(operation,false);
  outHeader.nextLine();
  printDomainOfValidity(operation.getDomainOfValidity());
  printAccuracy(CRS.getLinearAccuracy(operation));
  if (options.containsKey(Option.VERBOSE)) {
    printDetails();
  }
  outHeader.flush();
  outHeader=null;
  if (!points.isEmpty()) {
    ordinateWidth=15;
    coordinateFormat=NumberFormat.getInstance(Locale.US);
    coordinateFormat.setGroupingUsed(false);
    computeNumFractionDigits(operation.getTargetCRS().getCoordinateSystem());
    out.println();
    printAxes(operation.getTargetCRS().getCoordinateSystem());
    out.println();
    transform(points);
    if (errorMessage != null) {
      error(errorMessage,errorCause);
    }
  }
  return 0;
}