@@ -852,7 +852,7 @@ private void cleanUpSyncPeer(PeerConnection peer, ReasonCode reasonCode) {
852852 disconnectPeer (peer , reasonCode );
853853 }
854854
855- synchronized boolean isExist (TransactionMessage trxMsg ){
855+ synchronized boolean isTrxExist (TransactionMessage trxMsg ){
856856 if (TrxCache .getIfPresent (trxMsg .getMessageId ()) != null ){
857857 return true ;
858858 }
@@ -861,19 +861,18 @@ synchronized boolean isExist(TransactionMessage trxMsg){
861861 }
862862
863863 private void onHandleTransactionMessage (PeerConnection peer , TransactionMessage trxMsg ) {
864- if (isExist (trxMsg )){
865- return ;
866- }
867- //logger.info("on handle transaction message");
868864 try {
869865 Item item = new Item (trxMsg .getMessageId (), InventoryType .TRX );
870866 if (!peer .getAdvObjWeRequested ().containsKey (item )) {
871867 throw new TraitorPeerException ("We don't send fetch request to" + peer );
872- } else {
873- peer .getAdvObjWeRequested ().remove (item );
874- del .handleTransaction (trxMsg .getTransactionCapsule ());
875- broadcast (trxMsg );
876868 }
869+ peer .getAdvObjWeRequested ().remove (item );
870+ if (isTrxExist (trxMsg )){
871+ logger .info ("Trx {} from Peer {} already processed." , trxMsg .getMessageId (), peer .getNode ().getHost ());
872+ return ;
873+ }
874+ del .handleTransaction (trxMsg .getTransactionCapsule ());
875+ broadcast (trxMsg );
877876 } catch (TraitorPeerException e ) {
878877 logger .error (e .getMessage ());
879878 banTraitorPeer (peer , ReasonCode .BAD_PROTOCOL );
0 commit comments