checkKey(key);
JsonArray serializedValue = JsonSerializer.serializeObject(value);
T oldObject = this.<T> get(key);
JsonArray oldValue = snapshot.getArray(key);
if (!JsonMapComponent.jsonEquals(oldValue, serializedValue)) {
JsonMapComponent op = new JsonMapComponent(id, key, oldValue, serializedValue);
consumeAndSubmit(op);
}
return oldObject;
}