diff --git a/api/src/main/java/org/openmrs/module/sync/api/db/hibernate/HibernateSyncInterceptor.java b/api/src/main/java/org/openmrs/module/sync/api/db/hibernate/HibernateSyncInterceptor.java index 8fa21a6..a461431 100644 --- a/api/src/main/java/org/openmrs/module/sync/api/db/hibernate/HibernateSyncInterceptor.java +++ b/api/src/main/java/org/openmrs/module/sync/api/db/hibernate/HibernateSyncInterceptor.java @@ -1690,10 +1690,13 @@ public SyncRecord getSyncRecordForCurrentTx() { public SyncRecord endTransaction(Transaction tx) { SyncRecord record = syncRecords.remove(tx); Transaction expected = transactions.pop(); + processRegistered.remove(tx); + if (transactions.isEmpty()) { + syncRecordThreadLocal.remove(); + } if (record == null || expected == null || !expected.equals(tx)) { throw new IllegalStateException("Ending transaction did not find the expected transaction on the stack"); } - syncRecordThreadLocal.get().setProcessRegistered(tx, false); return record; } }