- HashMap<Integer, SummaryNode> reachableTransitions = rGraph.getReachableTransitionSummary(stateId);
- for(Map.Entry<Integer, SummaryNode> transition : reachableTransitions.entrySet()) {
- SummaryNode summaryNode = transition.getValue();
- TransitionEvent reachableTransition = summaryNode.getTransitionEvent();
- Execution conflictExecution = reachableTransition.getExecution();
- int conflictChoice = reachableTransition.getChoiceCounter();
- // Copy ReadWriteSet object
- ReadWriteSet currRWSet = summaryNode.getReadWriteSet();
- currRWSet = currRWSet.getCopy();
- // Memorize visited TransitionEvent object while performing backward DFS to avoid getting caught up in a cycle
- HashSet<TransitionEvent> visited = new HashSet<>();
- updateBacktrackSetRecursive(execution, currentChoice, conflictExecution, conflictChoice, currRWSet, visited);
+ //HashMap<Integer, SummaryNode> reachableTransitions = rGraph.getReachableTransitionSummary(stateId);
+ HashSet<TransitionEvent> reachableTransitions = rGraph.getReachableTransitionsAtState(stateId);
+ for(TransitionEvent transition : reachableTransitions) {
+ // Current transition that stems from this state ID
+ Execution currentExecution = transition.getExecution();
+ int currentChoice = transition.getChoiceCounter();
+ // Iterate over the stored conflict transitions in the summary
+ for(Map.Entry<Integer, SummaryNode> conflictTransition : transition.getTransitionSummary().entrySet()) {
+ SummaryNode summaryNode = conflictTransition.getValue();
+ // Conflict transition in the summary node
+ TransitionEvent confTrans = summaryNode.getTransitionEvent();
+ Execution conflictExecution = confTrans.getExecution();
+ int conflictChoice = confTrans.getChoiceCounter();
+ // Copy ReadWriteSet object
+ ReadWriteSet currRWSet = summaryNode.getReadWriteSet();
+ currRWSet = currRWSet.getCopy();
+ // Memorize visited TransitionEvent object while performing backward DFS to avoid getting caught up in a cycle
+ HashSet<TransitionEvent> visited = new HashSet<>();
+ updateBacktrackSetRecursive(currentExecution, currentChoice, conflictExecution, conflictChoice, currRWSet, visited);
+ }