Program: 86026
Project: 86026
Buggy source:
private void load(File file) throws IOException, BlockStoreException {
  LOG("String_Node_Str" + file.getAbsolutePath());
  FileInputStream input=new FileInputStream(file);
  int version=input.read();
  if (version == -1) {
    throw new FileNotFoundException(file.getName() + "String_Node_Str");
  }
  if (version != 1) {
    throw new BlockStoreException("String_Node_Str" + version);
  }
  byte[] chainHeadHash=new byte[32];
  input.read(chainHeadHash);
  this.chainHead=new Sha256Hash(chainHeadHash);
  LOG("String_Node_Str" + this.chainHead);
  long now=System.currentTimeMillis();
  byte[] headerBytes=new byte[Block.HEADER_SIZE];
  try {
    while (true) {
      if (input.read(headerBytes) < 80) {
        break;
      }
      Block b=new Block(params,headerBytes);
      StoredBlock prev=get(b.getPrevBlockHash());
      StoredBlock s;
      if (prev == null) {
        if (b.equals(params.genesisBlock)) {
          s=new StoredBlock(params.genesisBlock.cloneAsHeader(),params.genesisBlock.getWork(),0);
        }
 else {
          throw new BlockStoreException("String_Node_Str" + Utils.bytesToHexString(b.getHash()) + "String_Node_Str"+ Utils.bytesToHexString(b.getPrevBlockHash()));
        }
      }
 else {
        b.verify();
        s=prev.build(b);
      }
      blockMap.put(new Sha256Hash(b.getHash()),s);
    }
  }
 catch (  ProtocolException e) {
    throw new BlockStoreException(e);
  }
catch (  VerificationException e) {
    throw new BlockStoreException(e);
  }
  long elapsed=System.currentTimeMillis() - now;
  LOG("String_Node_Str" + elapsed + "String_Node_Str");
}

Fixed version (ground truth):
private void load(File file) throws IOException, BlockStoreException {
  LOG("String_Node_Str" + file.getAbsolutePath());
  InputStream input=new BufferedInputStream(new FileInputStream(file));
  int version=input.read();
  if (version == -1) {
    throw new FileNotFoundException(file.getName() + "String_Node_Str");
  }
  if (version != 1) {
    throw new BlockStoreException("String_Node_Str" + version);
  }
  byte[] chainHeadHash=new byte[32];
  input.read(chainHeadHash);
  this.chainHead=new Sha256Hash(chainHeadHash);
  LOG("String_Node_Str" + this.chainHead);
  long now=System.currentTimeMillis();
  byte[] headerBytes=new byte[Block.HEADER_SIZE];
  try {
    while (true) {
      if (input.read(headerBytes) < 80) {
        break;
      }
      Block b=new Block(params,headerBytes);
      StoredBlock prev=get(b.getPrevBlockHash());
      StoredBlock s;
      if (prev == null) {
        if (b.equals(params.genesisBlock)) {
          s=new StoredBlock(params.genesisBlock.cloneAsHeader(),params.genesisBlock.getWork(),0);
        }
 else {
          throw new BlockStoreException("String_Node_Str" + Utils.bytesToHexString(b.getHash()) + "String_Node_Str"+ Utils.bytesToHexString(b.getPrevBlockHash()));
        }
      }
 else {
        b.verify();
        s=prev.build(b);
      }
      blockMap.put(new Sha256Hash(b.getHash()),s);
    }
  }
 catch (  ProtocolException e) {
    throw new BlockStoreException(e);
  }
catch (  VerificationException e) {
    throw new BlockStoreException(e);
  }
  long elapsed=System.currentTimeMillis() - now;
  LOG("String_Node_Str" + elapsed + "String_Node_Str");
}