@@ -314,33 +314,33 @@ public List<MessageMutationFault> mutators() {
314
314
// messageEvent.setPayload(mutatedMessage);
315
315
// }
316
316
// },
317
- new MessageMutationFault ("hbft-view-change-remove-first-request-and-d" , "Remove first request and decrement seq" , List .of (ViewChangeMessage .class )) {
318
- @ Override
319
- public void accept (FaultContext serializable ) {
320
- Optional <Event > event = serializable .getEvent ();
321
- if (event .isEmpty ()) {
322
- throw invalidMessageTypeException ;
323
- }
324
- if (!(event .get () instanceof MessageEvent messageEvent )) {
325
- throw invalidMessageTypeException ;
326
- }
327
- if (!(messageEvent .getPayload () instanceof ViewChangeMessage message )) {
328
- throw invalidMessageTypeException ;
329
- }
330
- SortedMap <Long , RequestMessage > requests = message .getRequestsR ();
331
- if (requests != null && requests .size () > 1 ) {
332
- long key = requests .firstKey ();
333
- requests .remove (key );
334
- Entry <Long , RequestMessage > firstReq = requests .firstEntry ();
335
- requests .remove (firstReq .getKey ());
336
- requests .put (firstReq .getKey () - 1 , firstReq .getValue ());
337
- ViewChangeMessage mutatedMessage = message .withRequestsR (requests );
338
- mutatedMessage .sign (message .getSignedBy ());
339
- messageEvent .setPayload (mutatedMessage );
340
- }
317
+ // new MessageMutationFault("hbft-view-change-remove-first-request-and-d", "Remove first request and decrement seq", List.of(ViewChangeMessage.class)) {
318
+ // @Override
319
+ // public void accept(FaultContext serializable) {
320
+ // Optional<Event> event = serializable.getEvent();
321
+ // if (event.isEmpty()) {
322
+ // throw invalidMessageTypeException;
323
+ // }
324
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
325
+ // throw invalidMessageTypeException;
326
+ // }
327
+ // if (!(messageEvent.getPayload() instanceof ViewChangeMessage message)) {
328
+ // throw invalidMessageTypeException;
329
+ // }
330
+ // SortedMap<Long, RequestMessage> requests = message.getRequestsR();
331
+ // if (requests != null && requests.size() > 1) {
332
+ // long key = requests.firstKey();
333
+ // requests.remove(key);
334
+ // Entry<Long, RequestMessage> firstReq = requests.firstEntry();
335
+ // requests.remove(firstReq.getKey());
336
+ // requests.put(firstReq.getKey() - 1, firstReq.getValue());
337
+ // ViewChangeMessage mutatedMessage = message.withRequestsR(requests);
338
+ // mutatedMessage.sign(message.getSignedBy());
339
+ // messageEvent.setPayload(mutatedMessage);
340
+ // }
341
341
342
- }
343
- }
342
+ // }
343
+ // }
344
344
// new MessageMutationFault("hbft-view-change-decrement-last-request-seqNum", "Decrement last request seqNum", List.of(ViewChangeMessage.class)) {
345
345
// @Override
346
346
// public void accept(FaultContext serializable) {
@@ -462,7 +462,7 @@ public void accept(FaultContext serializable) {
462
462
463
463
// }
464
464
// }
465
- ,
465
+ // ,
466
466
new MessageMutationFault ("hbft-view-change-first-req-in-R" , "Change first request in R" , List .of (ViewChangeMessage .class )) {
467
467
@ Override
468
468
public void accept (FaultContext serializable ) {
@@ -629,6 +629,44 @@ public void accept(FaultContext serializable) {
629
629
// messageEvent.setPayload(mutatedMessage);
630
630
// }
631
631
// }
632
+ //,
633
+ // new MessageMutationFault("hbft-view-change-random-req-in-R", "Change random request in R", List.of(ViewChangeMessage.class)) {
634
+ // @Override
635
+ // public void accept(FaultContext serializable) {
636
+ // Optional<Event> event = serializable.getEvent();
637
+ // if (event.isEmpty()) {
638
+ // throw invalidMessageTypeException;
639
+ // }
640
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
641
+ // throw invalidMessageTypeException;
642
+ // }
643
+ // if (!(messageEvent.getPayload() instanceof ViewChangeMessage message)) {
644
+ // throw invalidMessageTypeException;
645
+ // }
646
+ // String senderId = messageEvent.getSenderId();
647
+ // Replica sender = serializable.getScenario().getReplicas().get(senderId);
648
+ // SortedMap<Long, RequestMessage> requests = message.getRequestsR();
649
+ // List<Long> keysetAsArray = new ArrayList<Long>(requests.keySet());
650
+ // if (requests != null && !requests.isEmpty()) {
651
+ // Long randReqKey = keysetAsArray.get(random.nextInt(keysetAsArray.size()));
652
+ // RequestMessage randReq = requests.get(keysetAsArray.get(random.nextInt(keysetAsArray.size())));
653
+ // if (sender instanceof HbftJavaReplica replica) {
654
+ // SortedMap<Long, RequestMessage> specRequests = replica.getSpeculativeRequests();
655
+ // for (Long key : specRequests.keySet()) {
656
+ // if (!specRequests.get(key).equals(randReq)) {
657
+ // requests.remove(randReqKey);
658
+ // requests.put(randReqKey, specRequests.get(key));
659
+ // ViewChangeMessage mutatedMessage = message.withRequestsR(requests);
660
+ // mutatedMessage.sign(message.getSignedBy());
661
+ // messageEvent.setPayload(mutatedMessage);
662
+ // break;
663
+ // }
664
+ // }
665
+ // }
666
+ // }
667
+
668
+ // }
669
+ // }
632
670
633
671
);
634
672
}
0 commit comments