} else if (typeName.equals("boolean")) {
fields.setBooleanValue(i, (Boolean)freeVarValues[i]);
} else {
- int val = ((ElementInfo)freeVarValues[i]).getObjectRef();
- fields.setReferenceValue(i, val);
+ if(freeVarValues[i] == null) {
+ fields.setReferenceValue(i, MJIEnv.NULL);
+ } else {
+ int val = ((ElementInfo)freeVarValues[i]).getObjectRef();
+ fields.setReferenceValue(i, val);
+ }
}
}
}
import gov.nasa.jpf.util.test.TestJPF;
+import java.util.function.Supplier;
+
import org.junit.Test;
/**
assertSame(fi1,fi2);
}
}
+
+ @Test
+ public void testNullCaptureValues() {
+ if(verifyNoPropertyViolation()) {
+ Supplier<String> provider = getStringProvider(null);
+ assertEquals(provider.get(), "It was null");
+ }
+ }
+
+ private Supplier<String> getStringProvider(String object) {
+ return () -> object == null ? "It was null" : object;
+ }
}