From: amiraj Date: Tue, 3 Dec 2019 23:38:23 +0000 (-0800) Subject: Change in listener X-Git-Url: http://plrg.eecs.uci.edu/git/?p=jpf-core.git;a=commitdiff_plain;h=510dc885153c6b8f0f26f4820b4a6240be231ea3;ds=inline Change in listener --- diff --git a/src/main/gov/nasa/jpf/listener/ConflictTracker.java b/src/main/gov/nasa/jpf/listener/ConflictTracker.java index 193d2f0..06e6e4a 100644 --- a/src/main/gov/nasa/jpf/listener/ConflictTracker.java +++ b/src/main/gov/nasa/jpf/listener/ConflictTracker.java @@ -196,7 +196,8 @@ public class ConflictTracker extends ListenerAdapter { String value = valueMap.get(i.getVarName()); Integer writer = writerMap.get(i.getVarName()); if ((value != null)&&(writer != null)) { - if (!value.equals(i.getValue())&&!writer.equals(i.getAppNum())) { // We have different values and different writers + if (!value.equals(i.getValue())&&!writer.equals(i.getAppNum())) { + // We have different values and different writers errorMessage = createErrorMessage(i, valueMap, writerMap); return true; } @@ -472,9 +473,16 @@ public class ConflictTracker extends ListenerAdapter { boolean isChanged = updateTheOutSet(parentNode, currentNode); // Check if the outSet of this state has changed, update all of its successors' sets if any - if (isChanged) + if (isChanged) { + for (Node node : currentNode.getSuccessors()) { + HashMap> setSets = currentNode.getOutgoingEdges().get(node).getSetSetMap(); + for (Map.Entry mapElement : setSets.entrySet()) { + Transition currentTransition = (Transition)mapElement.getKey(); + conflictFound = conflictFound || checkForConflict(currentNode, node, currentTransition); + } + } conflictFound = conflictFound || propagateTheChange(currentNode); - + } // Update the parent node if (nodes.containsKey(id)) { parentNode = nodes.get(id);