Checking for null value before storing the first write.
authorrtrimana <rtrimana@uci.edu>
Thu, 8 Aug 2019 22:06:15 +0000 (15:06 -0700)
committerrtrimana <rtrimana@uci.edu>
Thu, 8 Aug 2019 22:06:15 +0000 (15:06 -0700)
src/main/gov/nasa/jpf/listener/VariableConflictTracker.java

index 04182946a09aa2d4b066949a18696091447d2dbc..0359ed14b0cd54802e17fe7623a3057c1b29a8df 100644 (file)
@@ -132,14 +132,6 @@ public class VariableConflictTracker extends ListenerAdapter {
         // Conflict is declared when:
         // 1) Current writer != previous writer, e.g., App1 vs. App2
         // 2) Current value != previous value, e.g., "locked" vs. "unlocked"
-        if (current.value == null) {
-
-          StringBuilder sb = new StringBuilder();
-          sb.append("Conflict between apps " + current.writer + " and " + writer + ": ");
-          sb.append("Current value cannot be read (null value)... Please double check with your app output!");
-          Instruction nextIns = ti.createAndThrowException("java.lang.RuntimeException", sb.toString());
-          ti.setNextPC(nextIns);
-        }
         if (!current.value.equals(value)) {
 
           StringBuilder sb = new StringBuilder();
@@ -156,9 +148,11 @@ public class VariableConflictTracker extends ListenerAdapter {
         current.value = value;
       }
     } else {
-      // First write to the variable
-      VarChange change = new VarChange(writer, value);
-      writeMap.put(var, change);
+      // First write to the variable only if it is not null
+                       if (value != null) {
+                               VarChange change = new VarChange(writer, value);
+                               writeMap.put(var, change);
+                       }
     }
   }