Program: 150150
Project: 150150
Buggy source:
/** 
 * Create a new driver for this collector
 * @param name The name of this driver
 * @param lospace the large object space for this allocator
 * @param blocksize The tile size
 * @param size The size (in blocks) of the space
 * @param threshold the size threshold of the LOS
 * @param mainSpace Is this the main space?
 */
public TreadmillDriver(String name,LargeObjectSpace lospace,int blockSize,int threshold,boolean mainSpace){
  this.lospace=lospace;
  this.threshold=threshold;
  Address start=lospace.getStart();
  Extent extent=lospace.getExtent();
  this.blockSize=blockSize;
  maxAddr=start;
  int maxTileNum=countTileNum(extent,blockSize);
  tiles=new Tile[maxTileNum];
  for (int i=0; i < maxTileNum; i++)   tiles[i]=new Tile();
  subspace=new Subspace(start,start,0,blockSize,0);
  allTileNum=0;
  String tmp=(blockSize < 1024) ? "String_Node_Str" + blockSize + "String_Node_Str" : "String_Node_Str" + (blockSize / 1024) + "String_Node_Str";
  space=new ServerSpace(Plan.getNextServerSpaceId(),name,"String_Node_Str","String_Node_Str",tmp,maxTileNum,"String_Node_Str",mainSpace);
  setTilenames(subspace,0);
  usedSpaceStream=new Stream(space,LOS_USED_SPACE_STREAM,StreamConstants.INT_TYPE,"String_Node_Str",0,blockSize,0,0,"String_Node_Str","String_Node_Str",StreamConstants.PRESENTATION_PERCENT,StreamConstants.PAINT_STYLE_ZERO,0,Color.Red);
  objectsStream=new Stream(space,LOS_OBJECTS_STREAM,StreamConstants.SHORT_TYPE,"String_Node_Str",0,(int)(blockSize / threshold),0,0,"String_Node_Str","String_Node_Str",StreamConstants.PRESENTATION_PLUS,StreamConstants.PAINT_STYLE_ZERO,0,Color.Green);
  space.resize(0);
  zero();
}

Fixed version (ground truth):
/** 
 * Create a new driver for this collector
 * @param name The name of this driver
 * @param lospace the large object space for this allocator
 * @param blockSize The tile size
 * @param threshold the size threshold of the LOS
 * @param mainSpace Is this the main space?
 */
public TreadmillDriver(String name,LargeObjectSpace lospace,int blockSize,int threshold,boolean mainSpace){
  this.lospace=lospace;
  this.threshold=threshold;
  Address start=lospace.getStart();
  Extent extent=lospace.getExtent();
  this.blockSize=blockSize;
  maxAddr=start;
  int maxTileNum=countTileNum(extent,blockSize);
  tiles=new Tile[maxTileNum];
  for (int i=0; i < maxTileNum; i++)   tiles[i]=new Tile();
  subspace=new Subspace(start,start,0,blockSize,0);
  allTileNum=0;
  String tmp=(blockSize < 1024) ? "String_Node_Str" + blockSize + "String_Node_Str" : "String_Node_Str" + (blockSize / 1024) + "String_Node_Str";
  space=new ServerSpace(Plan.getNextServerSpaceId(),name,"String_Node_Str","String_Node_Str",tmp,maxTileNum,"String_Node_Str",mainSpace);
  setTilenames(subspace,0);
  usedSpaceStream=new Stream(space,LOS_USED_SPACE_STREAM,StreamConstants.INT_TYPE,"String_Node_Str",0,blockSize,0,0,"String_Node_Str","String_Node_Str",StreamConstants.PRESENTATION_PERCENT,StreamConstants.PAINT_STYLE_ZERO,0,Color.Red);
  objectsStream=new Stream(space,LOS_OBJECTS_STREAM,StreamConstants.SHORT_TYPE,"String_Node_Str",0,(int)(blockSize / threshold),0,0,"String_Node_Str","String_Node_Str",StreamConstants.PRESENTATION_PLUS,StreamConstants.PAINT_STYLE_ZERO,0,Color.Green);
  space.resize(0);
  zero();
}