target = main
+#target = Rand
# This is the listener that can detect variable write-after-write conflicts
-#listener=gov.nasa.jpf.listener.VariableConflictTracker
-listener=gov.nasa.jpf.listener.StateReducer
+listener=gov.nasa.jpf.listener.VariableConflictTracker
+#listener=gov.nasa.jpf.listener.StateReducer
+#listener=gov.nasa.jpf.listener.StateReducerOld
#listener=gov.nasa.jpf.listener.VariableConflictTracker,gov.nasa.jpf.listener.StateReducer
# Potentially conflicting variables
# Timeout in minutes (default is 0 which means no timeout)
timeout=30
-search.class = gov.nasa.jpf.search.heuristic.RandomHeuristic
-search.heuristic.beam_search=true
+#search.class = gov.nasa.jpf.search.heuristic.RandomHeuristic
+#search.heuristic.beam_search=true
#search.class = gov.nasa.jpf.search.heuristic.UserHeuristic
#search.class = gov.nasa.jpf.search.heuristic.BFSHeuristic
#search.class = gov.nasa.jpf.search.heuristic.DFSHeuristic
// 1) Check for conflicts with Write fields for both Read and Write instructions
// 2) Check for conflicts with Read fields for Write instructions
if (((nextInsn instanceof WriteInstruction || nextInsn instanceof ReadInstruction) &&
- rwSet.writeFieldExists(fieldClass)) ||
- (nextInsn instanceof WriteInstruction && rwSet.readFieldExists(fieldClass))) {
+ rwSet.writeFieldExists(fieldClass)) ||
+ (nextInsn instanceof WriteInstruction && rwSet.readFieldExists(fieldClass))) {
// We do not record and service the same backtrack pair/point twice!
// If it has been serviced before, we just skip this
if (recordConflictPair(choiceCounter, eventNumber)) {