Program: 85528
Project: 85528
Buggy source:
public DenseHll(Slice serialized){
  BasicSliceInput input=serialized.getInput();
  byte formatTag=input.readByte();
  checkArgument(formatTag == Format.DENSE_V1.getTag() || formatTag == Format.DENSE_V2.getTag(),"String_Node_Str");
  indexBitLength=input.readByte();
  validatePrefixLength(indexBitLength);
  int numberOfBuckets=numberOfBuckets(indexBitLength);
  baseline=input.readByte();
  deltas=new byte[numberOfBuckets / 2];
  input.readBytes(deltas);
  if (formatTag == Format.DENSE_V1.getTag()) {
    int bucket=input.readShort();
    byte value=input.readByte();
    if (bucket >= 0) {
      checkArgument(bucket <= numberOfBuckets,"String_Node_Str");
      overflows=1;
      overflowBuckets=new int[]{bucket};
      overflowValues=new byte[]{value};
    }
 else {
      overflows=0;
      overflowBuckets=new int[0];
      overflowValues=new byte[0];
    }
  }
 else   if (formatTag == Format.DENSE_V2.getTag()) {
    overflows=input.readUnsignedShort();
    checkArgument(overflows <= numberOfBuckets,"String_Node_Str");
    overflowBuckets=new int[overflows];
    overflowValues=new byte[overflows];
    for (int i=0; i < overflows; i++) {
      overflowBuckets[i]=input.readUnsignedShort();
      checkArgument(overflowBuckets[i] <= numberOfBuckets,"String_Node_Str");
    }
    for (int i=0; i < overflows; i++) {
      overflowValues[i]=input.readByte();
      checkArgument(overflowValues[i] > 0,"String_Node_Str");
    }
  }
 else {
    throw new IllegalArgumentException(String.format("String_Node_Str",formatTag));
  }
  baselineCount=0;
  for (int i=0; i < numberOfBuckets; i++) {
    if (getDelta(i) == 0) {
      baselineCount++;
    }
  }
  checkArgument(!input.isReadable(),"String_Node_Str");
}

Fixed version (ground truth):
public DenseHll(Slice serialized){
  BasicSliceInput input=serialized.getInput();
  byte formatTag=input.readByte();
  checkArgument(formatTag == Format.DENSE_V1.getTag() || formatTag == Format.DENSE_V2.getTag(),"String_Node_Str");
  indexBitLength=input.readByte();
  validatePrefixLength(indexBitLength);
  int numberOfBuckets=numberOfBuckets(indexBitLength);
  baseline=input.readByte();
  deltas=new byte[numberOfBuckets / 2];
  input.readBytes(deltas);
  if (formatTag == Format.DENSE_V1.getTag()) {
    int bucket=input.readShort();
    byte value=input.readByte();
    if (bucket >= 0 && value > 0) {
      checkArgument(bucket <= numberOfBuckets,"String_Node_Str");
      overflows=1;
      overflowBuckets=new int[]{bucket};
      overflowValues=new byte[]{value};
    }
 else {
      overflows=0;
      overflowBuckets=new int[0];
      overflowValues=new byte[0];
    }
  }
 else   if (formatTag == Format.DENSE_V2.getTag()) {
    overflows=input.readUnsignedShort();
    checkArgument(overflows <= numberOfBuckets,"String_Node_Str");
    overflowBuckets=new int[overflows];
    overflowValues=new byte[overflows];
    for (int i=0; i < overflows; i++) {
      overflowBuckets[i]=input.readUnsignedShort();
      checkArgument(overflowBuckets[i] <= numberOfBuckets,"String_Node_Str");
    }
    for (int i=0; i < overflows; i++) {
      overflowValues[i]=input.readByte();
      checkArgument(overflowValues[i] > 0,"String_Node_Str");
    }
  }
 else {
    throw new IllegalArgumentException(String.format("String_Node_Str",formatTag));
  }
  baselineCount=0;
  for (int i=0; i < numberOfBuckets; i++) {
    if (getDelta(i) == 0) {
      baselineCount++;
    }
  }
  checkArgument(!input.isReadable(),"String_Node_Str");
}