Hi Bo,
I stumbled over this problem too,
there is a comment in OpenExecution.java that seems to indicate that jBPM4 doesn't distinguish between variables with a null value and nonexisting process variables:
/** retrieve the value for the given key.
* The value can be null.
* If there is no value for the given key, the returned
* value will also be null. The value for key <code>null</code>
* will always be null as null keys are not allowed. */
Object getVariable(String key);