diff --git a/core/src/main/java/com/orientechnologies/orient/core/storage/impl/local/paginated/atomicoperations/OAtomicOperationsManager.java b/core/src/main/java/com/orientechnologies/orient/core/storage/impl/local/paginated/atomicoperations/OAtomicOperationsManager.java index acfdad2ca43..3f7d7bbc8e2 100755 --- a/core/src/main/java/com/orientechnologies/orient/core/storage/impl/local/paginated/atomicoperations/OAtomicOperationsManager.java +++ b/core/src/main/java/com/orientechnologies/orient/core/storage/impl/local/paginated/atomicoperations/OAtomicOperationsManager.java @@ -261,10 +261,9 @@ public static OAtomicOperation getCurrentOperation() { } private void startComponentOperation(final OAtomicOperation atomicOperation, final String lockName) { - acquireExclusiveLockTillOperationComplete(atomicOperation, lockName); checkReadOnlyConditions(atomicOperation); - componentOperationsFreezer.startOperation(); + acquireExclusiveLockTillOperationComplete(atomicOperation, lockName); } private void endComponentOperation() { @@ -280,14 +279,15 @@ public void releaseComponentOperations(final long freezeId) { } private boolean tryStartComponentOperation(final OAtomicOperation atomicOperation, final String lockName) { + checkReadOnlyConditions(atomicOperation); + componentOperationsFreezer.startOperation(); + final boolean result = tryAcquireExclusiveLockTillOperationComplete(atomicOperation, lockName); if (!result) { + componentOperationsFreezer.endOperation(); return false; } - checkReadOnlyConditions(atomicOperation); - - componentOperationsFreezer.startOperation(); return true; }