JsonValue distillOp(FullSpec spec, JsonValue val) { if (this.version == null || this.version.compareTo(spec.getVersion().toString()) < 0) { // TODO check condition return val; // no concurrent op } VersionOpSpec opkey = spec.getVersionOp(); this.oplog.put(opkey, val); this.distillLog(); // may amend the value val = this.oplog.get(opkey); return (val == null ? JsonValue.NULL : val); }