Program: 85582
Project: 85582
Buggy source:
@Override protected void processMessage(Message m) throws Exception {
  if (startTime == 0)   startTime=Utils.currentTimeMillis();
 else {
    long current=Utils.currentTimeMillis();
    dataReceived+=m.getMessageSize();
    if (count % 50 == 0) {
      log.info("String_Node_Str" + (dataReceived / 1024 / 1024) + "String_Node_Str"+ (current - startTime) / 1000 + "String_Node_Str" + (dataReceived / 1024) / (current - startTime) * 1000 + "String_Node_Str");
    }
    count++;
  }
  for (  ListenerRegistration<PeerEventListener> registration : eventListeners) {
    if (registration.executor == Threading.SAME_THREAD) {
      m=registration.listener.onPreMessageReceived(this,m);
      if (m == null)       break;
    }
  }
  if (m == null)   return;
  if (currentFilteredBlock != null && !(m instanceof Transaction)) {
    endFilteredBlock(currentFilteredBlock);
    currentFilteredBlock=null;
  }
  if (m instanceof Ping) {
    if (((Ping)m).hasNonce())     sendMessage(new Pong(((Ping)m).getNonce()));
  }
 else   if (m instanceof Pong) {
    processPong((Pong)m);
  }
 else   if (m instanceof NotFoundMessage) {
    processNotFoundMessage((NotFoundMessage)m);
  }
 else   if (m instanceof InventoryMessage) {
    processInv((InventoryMessage)m);
  }
 else   if (m instanceof Block) {
    processBlock((Block)m);
  }
 else   if (m instanceof FilteredBlock) {
    startFilteredBlock((FilteredBlock)m);
  }
 else   if (m instanceof TransactionLockRequest) {
    params.instantx.processTransactionLockRequest(this,(TransactionLockRequest)m);
    processTransaction((TransactionLockRequest)m);
  }
 else   if (m instanceof Transaction) {
    processTransaction((Transaction)m);
  }
 else   if (m instanceof GetDataMessage) {
    processGetData((GetDataMessage)m);
  }
 else   if (m instanceof AddressMessage) {
    processAddressMessage((AddressMessage)m);
  }
 else   if (m instanceof HeadersMessage) {
    processHeaders((HeadersMessage)m);
  }
 else   if (m instanceof AlertMessage) {
    processAlert((AlertMessage)m);
  }
 else   if (m instanceof VersionMessage) {
    processVersionMessage((VersionMessage)m);
  }
 else   if (m instanceof VersionAck) {
    if (vPeerVersionMessage == null) {
      throw new ProtocolException("String_Node_Str");
    }
    if (isAcked) {
      throw new ProtocolException("String_Node_Str");
    }
    isAcked=true;
    this.setTimeoutEnabled(false);
    for (    final ListenerRegistration<PeerEventListener> registration : eventListeners) {
      registration.executor.execute(new Runnable(){
        @Override public void run(){
          registration.listener.onPeerConnected(Peer.this,1);
        }
      }
);
    }
    final int version=vMinProtocolVersion;
    if (vPeerVersionMessage.clientVersion < version) {
      log.warn("String_Node_Str",vPeerVersionMessage.clientVersion,version);
      close();
    }
  }
 else   if (m instanceof UTXOsMessage) {
    processUTXOMessage((UTXOsMessage)m);
  }
 else   if (m instanceof RejectMessage) {
    log.error("String_Node_Str",this,getPeerVersionMessage().subVer,m);
  }
 else   if (m instanceof DarkSendQueue) {
  }
 else   if (m instanceof MasternodeBroadcast) {
    params.masternodeManager.processMasternodeBroadcast((MasternodeBroadcast)m);
  }
 else   if (m instanceof MasternodePing) {
    params.masternodeManager.processMasternodePing(this,(MasternodePing)m);
  }
 else   if (m instanceof SporkMessage) {
    params.sporkManager.processSpork(this,(SporkMessage)m);
  }
 else   if (m instanceof ConsensusVote) {
    params.instantx.processConsensusVoteMessage(this,(ConsensusVote)m);
  }
 else   if (m instanceof SyncStatusCount) {
    params.masternodeSync.processSyncStatusCount((SyncStatusCount)m);
  }
 else {
    log.warn("String_Node_Str",this,m);
  }
}

Fixed version (ground truth):
@Override protected void processMessage(Message m) throws Exception {
  if (startTime == 0)   startTime=Utils.currentTimeMillis();
 else {
    long current=Utils.currentTimeMillis();
    dataReceived+=m.getMessageSize();
    if (count % 50 == 0) {
      log.info("String_Node_Str" + (dataReceived / 1024 / 1024) + "String_Node_Str"+ (current - startTime) / 1000 + "String_Node_Str" + (dataReceived / 1024) / (current - startTime) * 1000 + "String_Node_Str");
    }
    count++;
  }
  for (  ListenerRegistration<PeerEventListener> registration : eventListeners) {
    if (registration.executor == Threading.SAME_THREAD) {
      m=registration.listener.onPreMessageReceived(this,m);
      if (m == null)       break;
    }
  }
  if (m == null)   return;
  if (currentFilteredBlock != null && !(m instanceof Transaction)) {
    endFilteredBlock(currentFilteredBlock);
    currentFilteredBlock=null;
  }
  if (m instanceof Ping) {
    if (((Ping)m).hasNonce())     sendMessage(new Pong(((Ping)m).getNonce()));
  }
 else   if (m instanceof Pong) {
    processPong((Pong)m);
  }
 else   if (m instanceof NotFoundMessage) {
    processNotFoundMessage((NotFoundMessage)m);
  }
 else   if (m instanceof InventoryMessage) {
    processInv((InventoryMessage)m);
  }
 else   if (m instanceof Block) {
    processBlock((Block)m);
  }
 else   if (m instanceof FilteredBlock) {
    startFilteredBlock((FilteredBlock)m);
  }
 else   if (m instanceof TransactionLockRequest) {
    params.instantx.processTransactionLockRequest(this,(TransactionLockRequest)m);
    processTransaction((TransactionLockRequest)m);
  }
 else   if (m instanceof Transaction) {
    processTransaction((Transaction)m);
  }
 else   if (m instanceof GetDataMessage) {
    processGetData((GetDataMessage)m);
  }
 else   if (m instanceof AddressMessage) {
    processAddressMessage((AddressMessage)m);
  }
 else   if (m instanceof HeadersMessage) {
    processHeaders((HeadersMessage)m);
  }
 else   if (m instanceof AlertMessage) {
    processAlert((AlertMessage)m);
  }
 else   if (m instanceof VersionMessage) {
    processVersionMessage((VersionMessage)m);
  }
 else   if (m instanceof VersionAck) {
    if (vPeerVersionMessage == null) {
      throw new ProtocolException("String_Node_Str");
    }
    if (isAcked) {
      throw new ProtocolException("String_Node_Str");
    }
    isAcked=true;
    this.setTimeoutEnabled(false);
    for (    final ListenerRegistration<PeerEventListener> registration : eventListeners) {
      registration.executor.execute(new Runnable(){
        @Override public void run(){
          registration.listener.onPeerConnected(Peer.this,1);
        }
      }
);
    }
    final int version=vMinProtocolVersion;
    if (vPeerVersionMessage.clientVersion < version) {
      log.warn("String_Node_Str",vPeerVersionMessage.clientVersion,version);
      close();
    }
  }
 else   if (m instanceof UTXOsMessage) {
    processUTXOMessage((UTXOsMessage)m);
  }
 else   if (m instanceof RejectMessage) {
    log.error("String_Node_Str",this,getPeerVersionMessage().subVer,m);
  }
 else   if (m instanceof DarkSendQueue) {
  }
 else   if (m instanceof MasternodeBroadcast) {
    params.masternodeManager.processMasternodeBroadcast((MasternodeBroadcast)m);
  }
 else   if (m instanceof MasternodePing) {
    params.masternodeManager.processMasternodePing(this,(MasternodePing)m);
  }
 else   if (m instanceof SporkMessage) {
    params.sporkManager.processSpork(this,(SporkMessage)m);
  }
 else   if (m instanceof ConsensusVote) {
    params.instantx.processConsensusVoteMessage(this,(ConsensusVote)m);
  }
 else   if (m instanceof SyncStatusCount) {
    params.masternodeSync.processSyncStatusCount(this,(SyncStatusCount)m);
  }
 else {
    log.warn("String_Node_Str",this,m);
  }
}