Program: 80088
Project: 80088
Buggy source:
public Result output() throws LWJGLException {
  progressListener.onTaskStarted(Task.StartingRenderer.toString());
  System.out.println("String_Node_Str");
  Date startTime=new Date();
  FileUtils.ensureExists(exportDir);
  FileUtils.ensureExists(args.cacheDir());
  TempArea tempArea=new TempArea(new File(args.cacheDir(),"String_Node_Str"));
  changedFileList=new ChangeFile(new File(args.outputDir(),"String_Node_Str"));
  for (  tectonicus.configuration.Map map : args.getMaps()) {
    File mapDir=new File(exportDir,map.getId());
    FileUtils.ensureExists(mapDir);
    BiomeCache biomeCache=CacheUtil.createBiomeCache(args.minecraftJar(),args.cacheDir(),map,hashAlgorithm);
    WorldSubsetFactory subset=map.getWorldSubsetFactory();
    World world=new World(rasteriser,map.getWorldDir(),map.getDimension(),args.minecraftJar(),args.texturePack(),biomeCache,hashAlgorithm,args.getSinglePlayerName(),subset);
    setupInitialCamera(map);
    WorldVectors worldVectors=calcWorldVectors();
    File portalsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    File signsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    File viewsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    WorldStats worldStats=preProcess(world,map.getDimension(),map.getSignFilter(),map.getPortalFilter(),map.getViewFilter(),portalsFile,signsFile,viewsFile);
    HddTileList visibleTiles=findVisibleTiles(world,camera,worldStats.numChunks());
    System.out.println("String_Node_Str");
    progressListener.onTaskStarted(Task.FindChangedTiles.toString());
    outputCompass(new File(mapDir,"String_Node_Str"),map,world.getBlockTypeRegistry(),world.getTexturePack());
    outputSigns(new File(mapDir,"String_Node_Str"),signsFile,map);
    outputPlayers(new File(mapDir,"String_Node_Str"),new File(exportDir,"String_Node_Str"),map,map.getPlayerFilter(),world.players(map.getDimension()),world.getOps(),playerIconAssembler);
    outputBeds(mapDir,map,map.getPlayerFilter(),world.players(null),world.getOps());
    outputPortals(new File(mapDir,"String_Node_Str"),portalsFile,map);
    outputViews(new File(mapDir,"String_Node_Str"),viewsFile,map,map.getViewConfig().getImageFormat());
    worldStats.outputBlockStats(new File(mapDir,"String_Node_Str"),map.getId(),world.getBlockTypeRegistry());
    worldStats.outputWorldStats(new File(mapDir,"String_Node_Str"),map.getId());
    FileViewCache viewCache=createViewCache(args.cacheDir(),map,tempArea,hashAlgorithm,regionHashStore);
    ViewRenderer viewRenderer=new ViewRenderer(rasteriser,viewCache,args.getNumDownsampleThreads(),map.getViewConfig());
    viewRenderer.output(world,mapDir,viewsFile,changedFileList);
    TileCoordBounds bounds=null;
    for (    Layer layer : map.getLayers()) {
      setupWorldForLayer(layer,world);
      String optionString=FileTileCache.calcOptionsString(args);
      TileCache tileCache=createTileCache(args.useCache(),optionString,layer.getImageFormat(),args.cacheDir(),map,layer,hashAlgorithm);
      File baseTilesDir=DirUtils.getZoomDir(exportDir,layer,numZoomLevels);
      FileUtils.ensureExists(baseTilesDir);
      HddTileList changedTiles=tileCache.findChangedTiles(hddTileListFactory,visibleTiles,regionHashStore,world,map,camera,map.getClosestZoomSize(),tileWidth,tileHeight,baseTilesDir);
      changedTiles=trimTileList(changedTiles,args.maxTiles());
      renderBaseTiles(world,map,layer.getImageFormat(),layer.getImageCompressionLevel(),baseTilesDir,changedTiles,tileCache);
      bounds=downsample(changedTiles,exportDir,layer,baseTilesDir,tileCache);
    }
    outputWorldVectors(new File(mapDir,"String_Node_Str"),map.getId(),worldVectors,bounds,world.getLevelDat(),worldStats.numChunks(),world.numPlayers());
  }
  outputHtmlResources(new TexturePack(rasteriser,args.minecraftJar(),args.texturePack()),playerIconAssembler);
  outputContents(new File(new File(exportDir,"String_Node_Str"),"String_Node_Str"),args);
  final File outputHtmlFile=outputHtml();
  Date endTime=new Date();
  String time=Util.getElapsedTime(startTime,endTime);
  outputRenderStats(time);
  outputChangedFile();
  System.out.println("String_Node_Str" + time);
  return new Result(abort,outputHtmlFile);
}

Fixed version (ground truth):
public Result output() throws LWJGLException {
  progressListener.onTaskStarted(Task.StartingRenderer.toString());
  System.out.println("String_Node_Str");
  Date startTime=new Date();
  FileUtils.ensureExists(exportDir);
  FileUtils.ensureExists(args.cacheDir());
  TempArea tempArea=new TempArea(new File(args.cacheDir(),"String_Node_Str"));
  changedFileList=new ChangeFile(new File(args.outputDir(),"String_Node_Str"));
  for (  tectonicus.configuration.Map map : args.getMaps()) {
    File mapDir=new File(exportDir,map.getId());
    FileUtils.ensureExists(mapDir);
    BiomeCache biomeCache=CacheUtil.createBiomeCache(args.minecraftJar(),args.cacheDir(),map,hashAlgorithm);
    WorldSubsetFactory subset=map.getWorldSubsetFactory();
    World world=new World(rasteriser,map.getWorldDir(),map.getDimension(),args.minecraftJar(),args.texturePack(),biomeCache,hashAlgorithm,args.getSinglePlayerName(),subset);
    setupInitialCamera(map);
    WorldVectors worldVectors=calcWorldVectors();
    File portalsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    File signsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    File viewsFile=tempArea.generateTempFile("String_Node_Str","String_Node_Str");
    WorldStats worldStats=preProcess(world,map.getDimension(),map.getSignFilter(),map.getPortalFilter(),map.getViewFilter(),portalsFile,signsFile,viewsFile);
    HddTileList visibleTiles=findVisibleTiles(world,camera,worldStats.numChunks());
    System.out.println("String_Node_Str");
    progressListener.onTaskStarted(Task.FindChangedTiles.toString());
    outputCompass(new File(mapDir,"String_Node_Str"),map,world.getBlockTypeRegistry(),world.getTexturePack());
    outputSigns(new File(mapDir,"String_Node_Str"),signsFile,map);
    outputPlayers(new File(mapDir,"String_Node_Str"),new File(exportDir,"String_Node_Str"),map,map.getPlayerFilter(),world.players(map.getDimension()),world.getOps(),playerIconAssembler);
    outputBeds(mapDir,map,map.getPlayerFilter(),world.players(null),world.getOps());
    worldStats.setNumPortals((outputPortals(new File(mapDir,"String_Node_Str"),portalsFile,map)));
    outputViews(new File(mapDir,"String_Node_Str"),viewsFile,map,map.getViewConfig().getImageFormat());
    worldStats.outputBlockStats(new File(mapDir,"String_Node_Str"),map.getId(),world.getBlockTypeRegistry());
    worldStats.outputWorldStats(new File(mapDir,"String_Node_Str"),map.getId());
    FileViewCache viewCache=createViewCache(args.cacheDir(),map,tempArea,hashAlgorithm,regionHashStore);
    ViewRenderer viewRenderer=new ViewRenderer(rasteriser,viewCache,args.getNumDownsampleThreads(),map.getViewConfig());
    viewRenderer.output(world,mapDir,viewsFile,changedFileList);
    TileCoordBounds bounds=null;
    for (    Layer layer : map.getLayers()) {
      setupWorldForLayer(layer,world);
      String optionString=FileTileCache.calcOptionsString(args);
      TileCache tileCache=createTileCache(args.useCache(),optionString,layer.getImageFormat(),args.cacheDir(),map,layer,hashAlgorithm);
      File baseTilesDir=DirUtils.getZoomDir(exportDir,layer,numZoomLevels);
      FileUtils.ensureExists(baseTilesDir);
      HddTileList changedTiles=tileCache.findChangedTiles(hddTileListFactory,visibleTiles,regionHashStore,world,map,camera,map.getClosestZoomSize(),tileWidth,tileHeight,baseTilesDir);
      changedTiles=trimTileList(changedTiles,args.maxTiles());
      renderBaseTiles(world,map,layer.getImageFormat(),layer.getImageCompressionLevel(),baseTilesDir,changedTiles,tileCache);
      bounds=downsample(changedTiles,exportDir,layer,baseTilesDir,tileCache);
    }
    outputWorldVectors(new File(mapDir,"String_Node_Str"),map.getId(),worldVectors,bounds,world.getLevelDat(),worldStats.numChunks(),world.numPlayers());
  }
  outputHtmlResources(new TexturePack(rasteriser,args.minecraftJar(),args.texturePack()),playerIconAssembler);
  outputContents(new File(new File(exportDir,"String_Node_Str"),"String_Node_Str"),args);
  final File outputHtmlFile=outputHtml();
  Date endTime=new Date();
  String time=Util.getElapsedTime(startTime,endTime);
  outputRenderStats(time);
  outputChangedFile();
  System.out.println("String_Node_Str" + time);
  return new Result(abort,outputHtmlFile);
}