don't overwrite existing context metadata with invalid values

to avoid writing invalid metadata, don't overwrite metadata from previous `@setDataFrame` / `onMetaData` invocations unless the metadata has actually changed