/** * TEMP: workaround OrientDB 2.1 issue where in-TX dictionary updates are not replicated. */ public void replicate(final ODocument document, final EventKind eventKind) { singleton.replicate(document, eventKind); } }
private boolean recordEvent(final ODocument document, final EventKind eventKind) { final String typeName = document.getClassName(); if (typeName != null) { final EntityAdapter adapter = recordingAdapters.get(typeName); if (adapter != null) { final ODatabaseInternal db = getCurrrentDb(); if (db != null) { // workaround OrientDB 2.1 issue where in-TX dictionary updates are not replicated if (db.getStorage().isDistributed() && adapter instanceof SingletonEntityAdapter) { ((SingletonEntityAdapter) adapter).singleton.replicate(document, eventKind); } List<Object> events = dbEvents.get(db); if (events == null) { events = new ArrayList<>(); dbEvents.put(db, events); } upsertEvent(events, document, eventKind); return true; } } } return false; }