diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacade.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacade.java index ce120a76c0ba3..a6bda1ad07671 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacade.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacade.java @@ -60,6 +60,7 @@ import org.neo4j.internal.kernel.api.InternalIndexState; import org.neo4j.internal.kernel.api.NodeCursor; import org.neo4j.internal.kernel.api.NodeLabelIndexCursor; +import org.neo4j.internal.kernel.api.Write; import org.neo4j.internal.kernel.api.exceptions.InvalidTransactionTypeKernelException; import org.neo4j.internal.kernel.api.exceptions.KernelException; import org.neo4j.internal.kernel.api.exceptions.schema.ConstraintValidationException; @@ -79,9 +80,9 @@ import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.guard.Guard; import org.neo4j.kernel.impl.api.TokenAccess; +import org.neo4j.kernel.impl.core.EmbeddedProxySPI; import org.neo4j.kernel.impl.core.GraphPropertiesProxy; import org.neo4j.kernel.impl.core.NodeProxy; -import org.neo4j.kernel.impl.core.EmbeddedProxySPI; import org.neo4j.kernel.impl.core.RelationshipProxy; import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; @@ -257,15 +258,17 @@ public Long createNodeId() @Override public Node createNode( Label... labels ) { - try ( Statement statement = statementContext.get() ) + KernelTransaction transaction = statementContext.getKernelTransactionBoundToThisThread( true ); + try ( Statement ignore = transaction.acquireStatement() ) { - long nodeId = statement.dataWriteOperations().nodeCreate(); + Write write = transaction.dataWrite(); + long nodeId = write.nodeCreate(); for ( Label label : labels ) { - int labelId = statement.tokenWriteOperations().labelGetOrCreateForName( label.name() ); + int labelId = transaction.tokenWrite().labelGetOrCreateForName( label.name() ); try { - statement.dataWriteOperations().nodeAddLabel( nodeId, labelId ); + write.nodeAddLabel( nodeId, labelId ); } catch ( EntityNotFoundException e ) { @@ -282,7 +285,7 @@ public Node createNode( Label... labels ) { throw new IllegalArgumentException( e ); } - catch ( InvalidTransactionTypeKernelException e ) + catch ( KernelException e ) { throw new ConstraintViolationException( e.getMessage(), e ); }