Program: 50406
Project: 50406
Buggy source:
public void doBackup(Request req){
  if (req.key == null || req.key.size() == 0) {
    throw new RuntimeException("String_Node_Str" + req.key);
  }
  if (req.operation == CONCURRENT_MAP_BACKUP_PUT) {
    Record record=toRecordAndStats(req,false);
    if (!record.isActive()) {
      record.setActive();
      record.setCreationTime(System.currentTimeMillis());
    }
    record.setVersion(req.version);
    if (req.indexes != null) {
      if (req.indexTypes == null) {
        throw new RuntimeException("String_Node_Str");
      }
      if (req.indexes.length != req.indexTypes.length) {
        throw new RuntimeException("String_Node_Str");
      }
      record.setIndexes(req.indexes,req.indexTypes);
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_REMOVE) {
    Record record=getRecord(req.key);
    if (record != null) {
      if (record.isActive()) {
        updateStats(REMOVE,record,false,null);
        if (record.getCopyCount() > 0) {
          record.decrementCopyCount();
        }
        markAsRemoved(record);
      }
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_LOCK) {
    Record rec=toRecord(req);
    if (rec.getVersion() == 0) {
      rec.setVersion(req.version);
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_ADD) {
    add(req,true);
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_REMOVE_MULTI) {
    Record record=getRecord(req.key);
    if (record != null) {
      if (req.value == null) {
        markAsRemoved(record);
      }
 else {
        if (record.containsValue(req.value)) {
          if (record.getMultiValues() != null) {
            Iterator<Data> itValues=record.getMultiValues().iterator();
            while (itValues.hasNext()) {
              Data value=itValues.next();
              if (req.value.equals(value)) {
                itValues.remove();
              }
            }
          }
        }
        if (record.valueCount() == 0) {
          markAsRemoved(record);
        }
      }
    }
  }
 else {
    logger.log(Level.SEVERE,"String_Node_Str" + req.operation);
  }
}

Fixed version (ground truth):
public void doBackup(Request req){
  if (req.key == null || req.key.size() == 0) {
    throw new RuntimeException("String_Node_Str" + req.key);
  }
  if (req.operation == CONCURRENT_MAP_BACKUP_PUT) {
    Record record=toRecordAndStats(req,false);
    markAsActive(record);
    record.setVersion(req.version);
    if (req.indexes != null) {
      if (req.indexTypes == null) {
        throw new RuntimeException("String_Node_Str");
      }
      if (req.indexes.length != req.indexTypes.length) {
        throw new RuntimeException("String_Node_Str");
      }
      record.setIndexes(req.indexes,req.indexTypes);
    }
    if (req.ttl > 0) {
      record.setExpirationTime(req.ttl);
      ttlPerRecord=true;
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_REMOVE) {
    Record record=getRecord(req.key);
    if (record != null) {
      if (record.isActive()) {
        updateStats(REMOVE,record,false,null);
        if (record.getCopyCount() > 0) {
          record.decrementCopyCount();
        }
        markAsRemoved(record);
      }
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_LOCK) {
    Record rec=toRecord(req);
    if (rec.getVersion() == 0) {
      rec.setVersion(req.version);
    }
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_ADD) {
    add(req,true);
  }
 else   if (req.operation == CONCURRENT_MAP_BACKUP_REMOVE_MULTI) {
    Record record=getRecord(req.key);
    if (record != null) {
      if (req.value == null) {
        markAsRemoved(record);
      }
 else {
        if (record.containsValue(req.value)) {
          if (record.getMultiValues() != null) {
            Iterator<Data> itValues=record.getMultiValues().iterator();
            while (itValues.hasNext()) {
              Data value=itValues.next();
              if (req.value.equals(value)) {
                itValues.remove();
              }
            }
          }
        }
        if (record.valueCount() == 0) {
          markAsRemoved(record);
        }
      }
    }
  }
 else {
    logger.log(Level.SEVERE,"String_Node_Str" + req.operation);
  }
}