Fixup location handling, add test

Perhaps overly pedantic but we could make this:
final Map<String,Object> parameters = callParams != null ? callParams : Collections.emptyMap();

and avoid the extra map allocation and modifying the consumer's pointer in the null case, leaving callParams final.