Program: 19107
Project: 19107
Buggy source:
public static void main(String[] args){
  if (args.length < 4) {
    StringBuilder sb=new StringBuilder();
    sb.append("String_Node_Str");
    for (    Argument arg : Argument.values())     sb.append("String_Node_Str" + arg.name + "String_Node_Str");
    System.out.println(sb.toString());
    System.exit(1);
  }
  BufferedReader ir=new BufferedReader(new InputStreamReader(System.in));
  System.out.println("String_Node_Str");
  try {
    ir.readLine();
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
  final String iFile=args[Argument.INPUT.index];
  final String cFile=args[Argument.CENTROIDS.index];
  final String oFile=args[Argument.OUTPUT.index];
  final String type=args[Argument.TYPE.index];
  int iterations;
  if (args.length > 4)   iterations=Integer.parseInt(args[Argument.ITERATIONS.index]);
 else   iterations=1;
  Logger.logInfo(CLAZZ,"String_Node_Str");
  List<ICPoint<Float>> points=KMeansData.readICPoints(new File(iFile));
  Logger.logInfo(CLAZZ,"String_Node_Str");
  List<IPoint<Float>> centroids=KMeansData.readIPoints(new File(cFile));
  if (points.isEmpty() || centroids.isEmpty()) {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  if (points.get(0).getDim() != centroids.get(0).getDim()) {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  int dim=points.get(0).getDim();
  StopWatch sw=new StopWatch("String_Node_Str" + type + "String_Node_Str","String_Node_Str");
  sw.start();
  IKMeans<Float> kmeans=null;
  if (Argument.CPU.equals(type))   kmeans=new KMeans();
 else   if (Argument.OCL.equals(type))   kmeans=new KMeansCL();
 else {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  kmeans.initialize(dim,centroids.size(),false);
  StopWatch swCompute=new StopWatch("String_Node_Str" + type + "String_Node_Str","String_Node_Str");
  swCompute.start();
  kmeans.run(points,centroids,iterations);
  swCompute.stop();
  sw.stop();
  Logger.log(TIME_LEVEL,CLAZZ,swCompute.getTimeString());
  Logger.log(TIME_LEVEL,CLAZZ,sw.getTimeString());
  KMeansData.write(points,oFile);
}

Fixed version (ground truth):
public static void main(String[] args){
  if (args.length < 4) {
    StringBuilder sb=new StringBuilder();
    sb.append("String_Node_Str");
    for (    Argument arg : Argument.values())     sb.append("String_Node_Str" + arg.name + "String_Node_Str");
    System.out.println(sb.toString());
    System.exit(1);
  }
  BufferedReader ir=new BufferedReader(new InputStreamReader(System.in));
  System.out.println("String_Node_Str");
  try {
    ir.readLine();
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
  final String iFile=args[Argument.INPUT.index];
  final String cFile=args[Argument.CENTROIDS.index];
  final String oFile=args[Argument.OUTPUT.index];
  final String type=args[Argument.TYPE.index];
  int iterations;
  if (args.length > 4)   iterations=Integer.parseInt(args[Argument.ITERATIONS.index]);
 else   iterations=1;
  Logger.logInfo(CLAZZ,"String_Node_Str");
  List<ICPoint<Float>> points=KMeansData.readICPoints(new File(iFile));
  Logger.logInfo(CLAZZ,"String_Node_Str");
  List<IPoint<Float>> centroids=KMeansData.readIPoints(new File(cFile));
  Logger.logDebug(CLAZZ,"String_Node_Str" + centroids.size());
  if (points.isEmpty() || centroids.isEmpty()) {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  if (points.get(0).getDim() != centroids.get(0).getDim()) {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  int dim=points.get(0).getDim();
  StopWatch sw=new StopWatch("String_Node_Str" + type + "String_Node_Str","String_Node_Str");
  sw.start();
  IKMeans<Float> kmeans=null;
  if (Argument.CPU.equals(type))   kmeans=new KMeans();
 else   if (Argument.OCL.equals(type))   kmeans=new KMeansCL();
 else {
    Logger.logError(CLAZZ,"String_Node_Str");
    System.exit(1);
  }
  kmeans.initialize(dim,centroids.size(),false);
  StopWatch swCompute=new StopWatch("String_Node_Str" + type + "String_Node_Str","String_Node_Str");
  swCompute.start();
  kmeans.run(points,centroids,iterations);
  swCompute.stop();
  sw.stop();
  Logger.log(TIME_LEVEL,CLAZZ,swCompute.getTimeString());
  Logger.log(TIME_LEVEL,CLAZZ,sw.getTimeString());
  KMeansData.write(points,oFile);
}