Program: 4029
Project: 4029
Buggy source:
public void next(){
  if (_waitingToEmit.isEmpty()) {
    if (_lastFillTime == null || (System.currentTimeMillis() - _lastFillTime) > _kafkaconfig._fillFreqMs) {
      LOG.info("String_Node_Str" + _topic + "String_Node_Str"+ _partition.partition+ "String_Node_Str"+ _kafkaconfig._fillFreqMs+ "String_Node_Str");
      fill();
      _lastFillTime=System.currentTimeMillis();
    }
  }
  while (true) {
    MessageAndOffset msgAndOffset=_waitingToEmit.pollFirst();
    if (msgAndOffset != null) {
      Long key=msgAndOffset.offset();
      Message msg=msgAndOffset.message();
      try {
        _lastEnquedOffset=key;
        if (_lastEnquedOffset >= _lastComittedOffset) {
          if (msg.payload() != null) {
            MessageAndMetadata mmeta=new MessageAndMetadata();
            mmeta.setTopic(_topic);
            mmeta.setConsumer(_ConsumerId);
            mmeta.setOffset(_lastEnquedOffset);
            mmeta.setPartition(_partition);
            byte[] payload=new byte[msg.payload().remaining()];
            msg.payload().get(payload);
            mmeta.setPayload(payload);
            if (msg.hasKey()) {
              byte[] msgKey=new byte[msg.key().remaining()];
              msg.key().get(msgKey);
              mmeta.setKey(msgKey);
            }
            _dataBuffer.add(mmeta);
            LOG.info("String_Node_Str" + _topic + "String_Node_Str"+ _partition.partition+ "String_Node_Str"+ _lastEnquedOffset);
          }
        }
      }
 catch (      Exception e) {
        LOG.error("String_Node_Str" + key + "String_Node_Str"+ _partition+ "String_Node_Str"+ _topic+ "String_Node_Str"+ e.getMessage());
        e.printStackTrace();
      }
    }
 else {
      break;
    }
  }
  if ((_lastEnquedOffset >= _lastComittedOffset) && (_waitingToEmit.isEmpty())) {
    if (_dataBuffer.size() > 0) {
      try {
synchronized (_receiver) {
          _receiver.store(_dataBuffer.iterator());
          commit();
          _dataBuffer.clear();
        }
      }
 catch (      Exception ex) {
        _emittedToOffset=_lastComittedOffset;
        _dataBuffer.clear();
        _receiver.reportError("String_Node_Str" + _partition,ex);
      }
    }
  }
}

Fixed version (ground truth):
public void next(){
  if (_waitingToEmit.isEmpty()) {
    fill();
  }
  while (true) {
    MessageAndOffset msgAndOffset=_waitingToEmit.pollFirst();
    if (msgAndOffset != null) {
      Long key=msgAndOffset.offset();
      Message msg=msgAndOffset.message();
      try {
        _lastEnquedOffset=key;
        if (_lastEnquedOffset >= _lastComittedOffset) {
          if (msg.payload() != null) {
            MessageAndMetadata mmeta=new MessageAndMetadata();
            mmeta.setTopic(_topic);
            mmeta.setConsumer(_ConsumerId);
            mmeta.setOffset(_lastEnquedOffset);
            mmeta.setPartition(_partition);
            byte[] payload=new byte[msg.payload().remaining()];
            msg.payload().get(payload);
            mmeta.setPayload(payload);
            if (msg.hasKey()) {
              byte[] msgKey=new byte[msg.key().remaining()];
              msg.key().get(msgKey);
              mmeta.setKey(msgKey);
            }
            _dataBuffer.add(mmeta);
            LOG.info("String_Node_Str" + _topic + "String_Node_Str"+ _partition.partition+ "String_Node_Str"+ _lastEnquedOffset);
          }
        }
      }
 catch (      Exception e) {
        LOG.error("String_Node_Str" + key + "String_Node_Str"+ _partition+ "String_Node_Str"+ _topic+ "String_Node_Str"+ e.getMessage());
        e.printStackTrace();
      }
    }
 else {
      break;
    }
  }
  if ((_lastEnquedOffset >= _lastComittedOffset) && (_waitingToEmit.isEmpty())) {
    try {
synchronized (_receiver) {
        if (!_dataBuffer.isEmpty())         _receiver.store(_dataBuffer.iterator());
        commit();
        _dataBuffer.clear();
      }
    }
 catch (    Exception ex) {
      _emittedToOffset=_lastComittedOffset;
      _dataBuffer.clear();
      _receiver.reportError("String_Node_Str" + _partition,ex);
    }
  }
}