Program: 9338
Project: 9338
Buggy source:
private void loadOrDematerialize(){
  if (useMaterializationCaching) {
    File cacheDir=new File("String_Node_Str");
    cacheDir.mkdirs();
    HashFunction hf=Hashing.md5();
    Hasher hasher=hf.newHasher();
    hasher.putBoolean(materializeExistentialRestrictions);
    hasher.putBoolean(handlePunning);
    for (    OWLOntology ont : baseReasoner.getOWLAPIOntologies()) {
      hasher.putInt(ont.getLogicalAxioms().hashCode());
      hasher.putInt(ont.getAxioms().hashCode());
    }
    String filename=hasher.hash().toString() + "String_Node_Str";
    File cacheFile=new File(cacheDir,filename);
    if (cacheFile.exists()) {
      logger.debug("String_Node_Str");
      try (ObjectInputStream ois=new ObjectInputStream(new FileInputStream(cacheFile))){
        Materialization mat=(Materialization)ois.readObject();
        classInstancesPos=mat.classInstancesPos;
        classInstancesNeg=mat.classInstancesNeg;
        opPos=mat.opPos;
        dpPos=mat.dpPos;
        bdPos=mat.bdPos;
        bdNeg=mat.bdNeg;
        dd=mat.dd;
        id=mat.id;
        sd=mat.sd;
      }
 catch (      ClassNotFoundException|IOException e) {
        e.printStackTrace();
      }
      logger.debug("String_Node_Str");
    }
 else {
      materialize();
      Materialization mat=new Materialization();
      mat.classInstancesPos=classInstancesPos;
      mat.classInstancesNeg=classInstancesNeg;
      mat.opPos=opPos;
      mat.dpPos=dpPos;
      mat.bdPos=bdPos;
      mat.bdNeg=bdNeg;
      mat.dd=dd;
      mat.id=id;
      mat.sd=sd;
      try (ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(cacheFile))){
        oos.writeObject(mat);
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
 else {
    materialize();
  }
}

Fixed version (ground truth):
private void loadOrDematerialize(){
  if (useMaterializationCaching) {
    File cacheDir=new File("String_Node_Str");
    cacheDir.mkdirs();
    HashFunction hf=Hashing.md5();
    Hasher hasher=hf.newHasher();
    hasher.putBoolean(materializeExistentialRestrictions);
    hasher.putBoolean(handlePunning);
    for (    OWLOntology ont : Collections.singleton(baseReasoner.getOntology())) {
      hasher.putInt(ont.getLogicalAxioms().hashCode());
      hasher.putInt(ont.getAxioms().hashCode());
    }
    String filename=hasher.hash().toString() + "String_Node_Str";
    File cacheFile=new File(cacheDir,filename);
    if (cacheFile.exists()) {
      logger.debug("String_Node_Str");
      try (ObjectInputStream ois=new ObjectInputStream(new FileInputStream(cacheFile))){
        Materialization mat=(Materialization)ois.readObject();
        classInstancesPos=mat.classInstancesPos;
        classInstancesNeg=mat.classInstancesNeg;
        opPos=mat.opPos;
        dpPos=mat.dpPos;
        bdPos=mat.bdPos;
        bdNeg=mat.bdNeg;
        dd=mat.dd;
        id=mat.id;
        sd=mat.sd;
      }
 catch (      ClassNotFoundException|IOException e) {
        e.printStackTrace();
      }
      logger.debug("String_Node_Str");
    }
 else {
      materialize();
      Materialization mat=new Materialization();
      mat.classInstancesPos=classInstancesPos;
      mat.classInstancesNeg=classInstancesNeg;
      mat.opPos=opPos;
      mat.dpPos=dpPos;
      mat.bdPos=bdPos;
      mat.bdNeg=bdNeg;
      mat.dd=dd;
      mat.id=id;
      mat.sd=sd;
      try (ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(cacheFile))){
        oos.writeObject(mat);
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
 else {
    materialize();
  }
}