Skip to content

Commit

Permalink
Lock node on deletion
Browse files Browse the repository at this point in the history
  • Loading branch information
pontusmelke committed Nov 25, 2017
1 parent ff03b0f commit 9e5a747
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
Expand Up @@ -724,9 +724,14 @@ public SchemaWrite schemaWrite()
}

@Override
public org.neo4j.internal.kernel.api.Locks locks()
public StatementLocks locks()
{
throw new UnsupportedOperationException( "not implemented" );
return statementLocks;
}

public LockTracer lockTracer()
{
return currentStatement.lockTracer();
}

private void afterCommit( long txId )
Expand Down
Expand Up @@ -27,7 +27,7 @@
* Component used by {@link KernelStatement} to acquire {@link #pessimistic() pessimistic} and
* {@link #optimistic() optimistic} locks.
*/
public interface StatementLocks extends AutoCloseable
public interface StatementLocks extends AutoCloseable, org.neo4j.internal.kernel.api.Locks
{
/**
* Get {@link Locks.Client} responsible for pessimistic locks. Such locks will be grabbed right away.
Expand Down
Expand Up @@ -26,8 +26,8 @@
import org.neo4j.graphdb.TransactionTerminatedException;
import org.neo4j.internal.kernel.api.CapableIndexReference;
import org.neo4j.internal.kernel.api.ExplicitIndexRead;
import org.neo4j.internal.kernel.api.IndexOrder;
import org.neo4j.internal.kernel.api.ExplicitIndexWrite;
import org.neo4j.internal.kernel.api.IndexOrder;
import org.neo4j.internal.kernel.api.IndexQuery;
import org.neo4j.internal.kernel.api.IndexReference;
import org.neo4j.internal.kernel.api.NodeCursor;
Expand All @@ -48,6 +48,7 @@
import org.neo4j.kernel.api.explicitindex.AutoIndexing;
import org.neo4j.kernel.impl.api.KernelTransactionImplementation;
import org.neo4j.kernel.impl.index.ExplicitIndexStore;
import org.neo4j.kernel.impl.locking.ResourceTypes;
import org.neo4j.storageengine.api.EntityType;
import org.neo4j.storageengine.api.StorageEngine;
import org.neo4j.storageengine.api.StorageStatement;
Expand Down Expand Up @@ -353,6 +354,7 @@ public boolean nodeDelete( long node ) throws KernelException
}
}

ktx.locks().optimistic().acquireExclusive( ktx.lockTracer(), ResourceTypes.NODE, node );
if ( allStoreHolder.nodeExists( node ) )
{
autoIndexing.nodes().entityRemoved( this, node );
Expand Down

0 comments on commit 9e5a747

Please sign in to comment.