diff --git a/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
index 1e15cb4fec98d..d7e6768af96da 100644
--- a/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
@@ -24,16 +24,12 @@ import java.util.function.Predicate
import org.eclipse.collections.api.iterator.LongIterator
import org.neo4j.collection.{PrimitiveLongResourceIterator, RawIterator}
-import org.neo4j.cypher.InternalException
import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.planner.v3_5.spi.{IdempotentResult, IndexDescriptor}
import org.neo4j.cypher.internal.runtime._
import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.DirectionConverter.toGraphDb
import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{OnlyDirectionExpander, TypeAndDirectionExpander}
-import org.opencypher.v9_0.util.{EntityNotFoundException, FailedIndexException}
-import org.opencypher.v9_0.expressions.SemanticDirection
-import org.opencypher.v9_0.expressions.SemanticDirection.{BOTH, INCOMING, OUTGOING}
import org.neo4j.cypher.internal.v3_5.logical.plans._
import org.neo4j.graphalgo.impl.path.ShortestPath
import org.neo4j.graphalgo.impl.path.ShortestPath.ShortestPathPredicate
@@ -51,9 +47,8 @@ import org.neo4j.kernel.api._
import org.neo4j.kernel.api.exceptions.schema.{AlreadyConstrainedException, AlreadyIndexedException}
import org.neo4j.kernel.api.schema.SchemaDescriptorFactory
import org.neo4j.kernel.api.schema.constaints.ConstraintDescriptorFactory
-import org.neo4j.kernel.guard.TerminationGuard
import org.neo4j.kernel.impl.api.RelationshipVisitor
-import org.neo4j.kernel.impl.api.store.{RelationshipIterator}
+import org.neo4j.kernel.impl.api.store.RelationshipIterator
import org.neo4j.kernel.impl.core.{EmbeddedProxySPI, ThreadToStatementContextBridge}
import org.neo4j.kernel.impl.coreapi.PropertyContainerLocker
import org.neo4j.kernel.impl.query.Neo4jTransactionalContext
@@ -62,6 +57,9 @@ import org.neo4j.kernel.impl.util.ValueUtils.{fromNodeProxy, fromRelationshipPro
import org.neo4j.values.storable.{TextValue, Value, Values, _}
import org.neo4j.values.virtual.{ListValue, NodeValue, RelationshipValue, VirtualValues}
import org.neo4j.values.{AnyValue, ValueMapper}
+import org.opencypher.v9_0.expressions.SemanticDirection
+import org.opencypher.v9_0.expressions.SemanticDirection.{BOTH, INCOMING, OUTGOING}
+import org.opencypher.v9_0.util.{EntityNotFoundException, FailedIndexException}
import scala.collection.Iterator
import scala.collection.JavaConverters._
@@ -88,13 +86,12 @@ sealed class TransactionBoundQueryContext(val transactionalContext: Transactiona
getDependencyResolver.
provideDependency(classOf[ThreadToStatementContextBridge]).
get
- val guard = new TerminationGuard
val locker = new PropertyContainerLocker
val query = transactionalContext.tc.executingQuery()
val context = transactionalContext.tc.asInstanceOf[Neo4jTransactionalContext]
val newTx = transactionalContext.graph.beginTransaction(context.transactionType, context.securityContext)
- val neo4jTransactionalContext = context.copyFrom(context.graph, guard, statementProvider, locker, newTx,
+ val neo4jTransactionalContext = context.copyFrom(context.graph, statementProvider, locker, newTx,
statementProvider.get(), query)
new TransactionBoundQueryContext(TransactionalContextWrapper(neo4jTransactionalContext))
}
diff --git a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
index 0f56b4bee8d2b..73b8457597c28 100644
--- a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
@@ -27,8 +27,6 @@ import org.mockito.Mockito._
import org.neo4j.cypher.internal.javacompat
import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
-import org.opencypher.v9_0.util.test_helpers.CypherFunSuite
-import org.opencypher.v9_0.expressions.SemanticDirection
import org.neo4j.graphdb._
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
@@ -50,6 +48,8 @@ import org.neo4j.kernel.impl.query.{Neo4jTransactionalContext, Neo4jTransactiona
import org.neo4j.storageengine.api.StorageReader
import org.neo4j.test.TestGraphDatabaseFactory
import org.neo4j.values.virtual.VirtualValues.EMPTY_MAP
+import org.opencypher.v9_0.expressions.SemanticDirection
+import org.opencypher.v9_0.util.test_helpers.CypherFunSuite
import scala.collection.JavaConverters._
@@ -91,7 +91,7 @@ class TransactionBoundQueryContextTest extends CypherFunSuite {
val transaction = mock[KernelTransaction]
when(transaction.cursors()).thenReturn(new DefaultCursors())
when(bridge.getKernelTransactionBoundToThisThread(true)).thenReturn(transaction)
- val tc = new Neo4jTransactionalContext(graph, null, bridge, locker, outerTx, statement,null, null)
+ val tc = new Neo4jTransactionalContext(graph, bridge, locker, outerTx, statement,null, null)
val transactionalContext = TransactionalContextWrapper(tc)
val context = new TransactionBoundQueryContext(transactionalContext)(indexSearchMonitor)
// WHEN
@@ -115,7 +115,7 @@ class TransactionBoundQueryContextTest extends CypherFunSuite {
when(transaction.acquireStatement()).thenReturn(statement)
when(transaction.cursors()).thenReturn(new DefaultCursors())
when(bridge.getKernelTransactionBoundToThisThread(true)).thenReturn(transaction)
- val tc = new Neo4jTransactionalContext(graph, null, bridge, locker, outerTx, statement,null, null)
+ val tc = new Neo4jTransactionalContext(graph, bridge, locker, outerTx, statement,null, null)
val transactionalContext = TransactionalContextWrapper(tc)
val context = new TransactionBoundQueryContext(transactionalContext)(indexSearchMonitor)
// WHEN
@@ -218,7 +218,7 @@ class TransactionBoundQueryContextTest extends CypherFunSuite {
when(transaction.acquireStatement()).thenReturn(statement)
when(transaction.cursors()).thenReturn(new DefaultCursors())
when(bridge.getKernelTransactionBoundToThisThread(true)).thenReturn(transaction)
- val tc = new Neo4jTransactionalContext(graph, null, bridge, locker, outerTx, statement, null, null)
+ val tc = new Neo4jTransactionalContext(graph, bridge, locker, outerTx, statement, null, null)
val transactionalContext = TransactionalContextWrapper(tc)
val context = new TransactionBoundQueryContext(transactionalContext)(indexSearchMonitor)
val resource1 = mock[AutoCloseable]
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/guard/Guard.java b/community/kernel/src/main/java/org/neo4j/kernel/guard/Guard.java
deleted file mode 100644
index fc18aad7481e2..0000000000000
--- a/community/kernel/src/main/java/org/neo4j/kernel/guard/Guard.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2002-2018 "Neo4j,"
- * Neo4j Sweden AB [http://neo4j.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.kernel.guard;
-
-import org.neo4j.graphdb.TransactionTerminatedException;
-import org.neo4j.kernel.api.KernelTransaction;
-
-/**
- * Guard that check entities for compatibility with some kind of guard criteria.
- * As soon as entity do not satisfy that criteria {@link TransactionTerminatedException } will be thrown.
- */
-public interface Guard
-{
- void check( KernelTransaction transaction );
-}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/guard/TerminationGuard.java b/community/kernel/src/main/java/org/neo4j/kernel/guard/TerminationGuard.java
deleted file mode 100644
index 6423dec096cb7..0000000000000
--- a/community/kernel/src/main/java/org/neo4j/kernel/guard/TerminationGuard.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2002-2018 "Neo4j,"
- * Neo4j Sweden AB [http://neo4j.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.kernel.guard;
-
-import org.neo4j.graphdb.TransactionTerminatedException;
-import org.neo4j.kernel.api.KernelTransaction;
-
-/**
- * Guard that checks kernel transaction for termination.
- * As soon as transaction timeout time reached {@link TransactionTerminatedException } will be thrown.
- */
-public class TerminationGuard implements Guard
-{
- @Override
- public void check( KernelTransaction transaction )
- {
- transaction.assertOpen();
- }
-}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java
index 1eed6f5e7f27e..39ac87529440c 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java
@@ -40,8 +40,6 @@
import org.neo4j.kernel.api.explicitindex.AutoIndexing;
import org.neo4j.kernel.builtinprocs.SpecialBuiltInProcedures;
import org.neo4j.kernel.configuration.Config;
-import org.neo4j.kernel.guard.Guard;
-import org.neo4j.kernel.guard.TerminationGuard;
import org.neo4j.kernel.impl.api.NonTransactionalTokenNameLookup;
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
import org.neo4j.kernel.impl.api.dbms.NonTransactionalDbmsOperations;
@@ -103,8 +101,6 @@ public class DataSourceModule
public final AutoIndexing autoIndexing;
- public final Guard guard;
-
public DataSourceModule( final PlatformModule platformModule, EditionModule editionModule,
Supplier queryExecutionEngineSupplier )
{
@@ -136,8 +132,6 @@ public DataSourceModule( final PlatformModule platformModule, EditionModule edit
SchemaWriteGuard schemaWriteGuard = deps.satisfyDependency( editionModule.schemaWriteGuard );
- guard = createGuard( deps );
-
DatabasePanicEventGenerator databasePanicEventGenerator = deps.satisfyDependency(
new DatabasePanicEventGenerator( platformModule.eventHandlers ) );
@@ -206,18 +200,6 @@ public DataSourceModule( final PlatformModule platformModule, EditionModule edit
procedures.registerComponent( GraphDatabaseService.class, gdsFactory::apply, true );
}
- private Guard createGuard( Dependencies deps )
- {
- TerminationGuard guard = createGuard();
- deps.satisfyDependency( guard );
- return guard;
- }
-
- protected TerminationGuard createGuard()
- {
- return new TerminationGuard();
- }
-
private Procedures setupProcedures( PlatformModule platform, EditionModule editionModule )
{
File pluginDir = platform.config.get( GraphDatabaseSettings.plugin_dir );
@@ -242,9 +224,8 @@ private Procedures setupProcedures( PlatformModule platform, EditionModule editi
Log proceduresLog = platform.logging.getUserLog( Procedures.class );
procedures.registerComponent( Log.class, ctx -> proceduresLog, true );
- Guard guard = platform.dependencies.resolveDependency( Guard.class );
procedures.registerComponent( ProcedureTransaction.class, new ProcedureTransactionProvider(), true );
- procedures.registerComponent( org.neo4j.procedure.TerminationGuard.class, new TerminationGuardProvider( guard ), true );
+ procedures.registerComponent( org.neo4j.procedure.TerminationGuard.class, new TerminationGuardProvider(), true );
// Below components are not public API, but are made available for internal
// procedures to call, and to provide temporary workarounds for the following
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 4e4905870ce0e..e61e5eddd91ae 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
@@ -82,7 +82,6 @@
import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.kernel.api.explicitindex.AutoIndexing;
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;
@@ -200,7 +199,7 @@ public GraphDatabaseFacade()
/**
* Create a new Core API facade, backed by the given SPI and using pre-resolved dependencies
*/
- public void init( EditionModule editionModule, SPI spi, Guard guard, ThreadToStatementContextBridge txBridge, Config config,
+ public void init( EditionModule editionModule, SPI spi, ThreadToStatementContextBridge txBridge, Config config,
RelationshipTypeTokenHolder relationshipTypeTokenHolder )
{
this.editionModule = editionModule;
@@ -224,7 +223,7 @@ public void init( EditionModule editionModule, SPI spi, Guard guard, ThreadToSta
nodeAutoIndexer, relAutoIndexer );
} );
- this.contextFactory = Neo4jTransactionalContextFactory.create( spi, guard, txBridge, locker );
+ this.contextFactory = Neo4jTransactionalContextFactory.create( spi, txBridge, locker );
}
@Override
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeFactory.java
index a7bdf3d988374..a487464203302 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeFactory.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeFactory.java
@@ -180,7 +180,6 @@ public GraphDatabaseFacade initFacade( File storeDir, Config config, final Depen
graphDatabaseFacade.init(
edition,
spi,
- dataSource.guard,
dataSource.threadToTransactionBridge,
platform.config,
edition.relationshipTypeTokenHolder
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/ProcedureGDSFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/ProcedureGDSFactory.java
index e027153892f5f..2257b9113db62 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/ProcedureGDSFactory.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/ProcedureGDSFactory.java
@@ -82,7 +82,6 @@ public GraphDatabaseService apply( Context context ) throws ProcedureException
urlValidator,
securityContext
),
- dataSource.guard,
dataSource.threadToTransactionBridge,
platform.config,
relationshipTypeTokenHolder
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/TerminationGuardProvider.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/TerminationGuardProvider.java
index fdf77a6888d58..a03c72d987e55 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/TerminationGuardProvider.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/proc/TerminationGuardProvider.java
@@ -22,20 +22,12 @@
import org.neo4j.internal.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.proc.Context;
-import org.neo4j.kernel.guard.Guard;
import org.neo4j.procedure.TerminationGuard;
import static org.neo4j.kernel.api.proc.Context.KERNEL_TRANSACTION;
public class TerminationGuardProvider implements ComponentRegistry.Provider
{
- private final Guard guard;
-
- public TerminationGuardProvider( Guard guard )
- {
- this.guard = guard;
- }
-
@Override
public TerminationGuard apply( Context ctx ) throws ProcedureException
{
@@ -55,7 +47,7 @@ private class TransactionTerminationGuard implements TerminationGuard
@Override
public void check()
{
- guard.check( ktx );
+ ktx.assertOpen();
}
}
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContext.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContext.java
index 9b322dfeec1e4..c37c2206816bb 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContext.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContext.java
@@ -33,7 +33,6 @@
import org.neo4j.kernel.api.dbms.DbmsOperations;
import org.neo4j.kernel.api.query.ExecutingQuery;
import org.neo4j.kernel.api.txstate.TxStateHolder;
-import org.neo4j.kernel.guard.Guard;
import org.neo4j.kernel.impl.api.KernelTransactionImplementation;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
@@ -43,7 +42,6 @@
public class Neo4jTransactionalContext implements TransactionalContext
{
private final GraphDatabaseQueryService graph;
- private final Guard guard;
private final ThreadToStatementContextBridge txBridge;
private final PropertyContainerLocker locker;
@@ -66,17 +64,15 @@ public class Neo4jTransactionalContext implements TransactionalContext
public Neo4jTransactionalContext(
GraphDatabaseQueryService graph,
- Guard guard,
ThreadToStatementContextBridge txBridge,
PropertyContainerLocker locker,
InternalTransaction initialTransaction,
- Statement intitialStatement,
+ Statement initialStatement,
ExecutingQuery executingQuery,
Kernel kernel
)
{
this.graph = graph;
- this.guard = guard;
this.txBridge = txBridge;
this.locker = locker;
this.transactionType = initialTransaction.transactionType();
@@ -85,7 +81,7 @@ public Neo4jTransactionalContext(
this.transaction = initialTransaction;
this.kernelTransaction = txBridge.getKernelTransactionBoundToThisThread( true );
- this.statement = intitialStatement;
+ this.statement = initialStatement;
this.kernel = kernel;
}
@@ -243,13 +239,6 @@ public TransactionalContext getOrBeginNewIfClosed()
return this;
}
- public TransactionalContext beginInNewThread()
- {
- InternalTransaction newTx = graph.beginTransaction( transactionType, securityContext );
- return new Neo4jTransactionalContext( graph, guard, txBridge, locker, newTx, txBridge.get(),
- executingQuery, kernel );
- }
-
private void checkNotTerminated()
{
InternalTransaction currentTransaction = transaction;
@@ -283,7 +272,7 @@ public Statement statement()
@Override
public void check()
{
- guard.check( kernelTransaction() );
+ kernelTransaction().assertOpen();
}
@Override
@@ -332,13 +321,12 @@ private void collectTransactionExecutionStatistic()
}
public Neo4jTransactionalContext copyFrom( GraphDatabaseQueryService graph,
- Guard guard,
ThreadToStatementContextBridge txBridge, PropertyContainerLocker locker,
InternalTransaction initialTransaction,
Statement initialStatement,
ExecutingQuery executingQuery )
{
- return new Neo4jTransactionalContext( graph, guard, txBridge, locker, initialTransaction,
+ return new Neo4jTransactionalContext( graph, txBridge, locker, initialTransaction,
initialStatement, executingQuery, kernel );
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextFactory.java
index b0558ab579862..db0dd43719845 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextFactory.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextFactory.java
@@ -26,7 +26,6 @@
import org.neo4j.kernel.GraphDatabaseQueryService;
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.api.query.ExecutingQuery;
-import org.neo4j.kernel.guard.Guard;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
import org.neo4j.kernel.impl.coreapi.PropertyContainerLocker;
@@ -43,23 +42,13 @@ public class Neo4jTransactionalContextFactory implements TransactionalContextFac
public static TransactionalContextFactory create(
GraphDatabaseFacade.SPI spi,
- Guard guard,
ThreadToStatementContextBridge txBridge,
PropertyContainerLocker locker )
{
Supplier queryService = lazySingleton( spi::queryService );
Supplier kernel = lazySingleton( spi::kernel );
- Neo4jTransactionalContext.Creator contextCreator =
- ( tx, initialStatement, executingQuery ) -> new Neo4jTransactionalContext( queryService.get(),
-
- guard,
- txBridge,
- locker,
- tx,
- initialStatement,
- executingQuery,
- kernel.get()
- );
+ Neo4jTransactionalContext.Creator contextCreator = ( tx, initialStatement, executingQuery ) ->
+ new Neo4jTransactionalContext( queryService.get(), txBridge, locker, tx, initialStatement, executingQuery, kernel.get() );
return new Neo4jTransactionalContextFactory( txBridge, contextCreator );
}
@@ -72,12 +61,10 @@ public static TransactionalContextFactory create(
DependencyResolver resolver = queryService.getDependencyResolver();
ThreadToStatementContextBridge txBridge = resolver.resolveDependency( ThreadToStatementContextBridge.class );
Kernel kernel = resolver.resolveDependency( Kernel.class );
- Guard guard = resolver.resolveDependency( Guard.class );
Neo4jTransactionalContext.Creator contextCreator =
( tx, initialStatement, executingQuery ) ->
new Neo4jTransactionalContext(
queryService,
- guard,
txBridge,
locker,
tx,
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/guard/TerminationGuardTest.java b/community/kernel/src/test/java/org/neo4j/kernel/guard/TerminationGuardTest.java
deleted file mode 100644
index 03bce377fd93a..0000000000000
--- a/community/kernel/src/test/java/org/neo4j/kernel/guard/TerminationGuardTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2002-2018 "Neo4j,"
- * Neo4j Sweden AB [http://neo4j.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.kernel.guard;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Answers;
-
-import org.neo4j.graphdb.TransactionTerminatedException;
-import org.neo4j.kernel.api.KernelTransaction;
-import org.neo4j.kernel.api.exceptions.Status;
-import org.neo4j.kernel.impl.api.KernelStatement;
-import org.neo4j.kernel.impl.api.KernelTransactionImplementation;
-import org.neo4j.kernel.impl.api.KernelTransactionTestBase;
-import org.neo4j.kernel.impl.locking.StatementLocks;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.neo4j.internal.kernel.api.security.SecurityContext.AUTH_DISABLED;
-
-public class TerminationGuardTest extends KernelTransactionTestBase
-{
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- @Test
- public void allowToProceedWhenTransactionIsNotTerminated()
- {
- TerminationGuard terminationGuard = buildGuard();
-
- KernelTransactionImplementation kernelTransaction = getKernelTransaction();
- terminationGuard.check( kernelTransaction );
- }
-
- @Test
- public void throwExceptionWhenCheckTerminatedTransaction()
- {
- TerminationGuard terminationGuard = buildGuard();
-
- KernelTransactionImplementation kernelTransaction = getKernelTransaction();
- kernelTransaction.markForTermination( Status.Transaction.Terminated );
-
- expectedException.expect( TransactionTerminatedException.class );
-
- terminationGuard.check( kernelTransaction );
- }
-
- @Test
- public void throwExceptionWhenCheckTerminatedStatement()
- {
- TerminationGuard terminationGuard = buildGuard();
-
- KernelTransactionImplementation kernelTransaction = getKernelTransaction();
- try ( KernelStatement kernelStatement = kernelTransaction.acquireStatement() )
- {
- kernelTransaction.markForTermination( Status.Transaction.Terminated );
- expectedException.expect( TransactionTerminatedException.class );
-
- terminationGuard.check( kernelTransaction );
- }
- }
-
- private KernelTransactionImplementation getKernelTransaction()
- {
- KernelTransactionImplementation transaction = newNotInitializedTransaction();
- StatementLocks statementLocks = mock( StatementLocks.class, Answers.RETURNS_DEEP_STUBS );
- when( statementLocks.pessimistic().getLockSessionId() ).thenReturn( 1 );
- transaction.initialize( 1L, 2L, statementLocks, KernelTransaction.Type.implicit,
- AUTH_DISABLED, 1L, 1L );
- return transaction;
- }
-
- private TerminationGuard buildGuard()
- {
- return new TerminationGuard();
- }
-}
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeTest.java
index 8407af0f47f18..7157ae393f75c 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/factory/GraphDatabaseFacadeTest.java
@@ -34,7 +34,6 @@
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.configuration.Config;
-import org.neo4j.kernel.guard.Guard;
import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
@@ -68,13 +67,11 @@ public void setUp()
when( spi.queryService() ).thenReturn( queryService );
when( spi.resolver() ).thenReturn( resolver );
when( resolver.resolveDependency( ThreadToStatementContextBridge.class ) ).thenReturn( contextBridge );
- Guard guard = mock( Guard.class );
- when( resolver.resolveDependency( Guard.class ) ).thenReturn( guard );
when( contextBridge.get() ).thenReturn( statement );
Config config = Config.defaults();
when( resolver.resolveDependency( Config.class ) ).thenReturn( config );
- graphDatabaseFacade.init( editionModule, spi, guard, contextBridge, config, mock( RelationshipTypeTokenHolder.class ) );
+ graphDatabaseFacade.init( editionModule, spi, contextBridge, config, mock( RelationshipTypeTokenHolder.class ) );
}
@Test
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextTest.java
index 6e4f03ce56dd2..5fce90d4147fa 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/query/Neo4jTransactionalContextTest.java
@@ -39,7 +39,6 @@
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.kernel.api.query.ExecutingQuery;
-import org.neo4j.kernel.guard.Guard;
import org.neo4j.kernel.impl.api.KernelStatement;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
@@ -64,7 +63,6 @@
public class Neo4jTransactionalContextTest
{
private GraphDatabaseQueryService queryService;
- private Guard guard;
private KernelStatement initialStatement;
private ThreadToStatementContextBridge txBridge;
private ConfiguredExecutionStatistics statistics;
@@ -85,21 +83,11 @@ public void checkKernelStatementOnCheck()
when( txBridge.getKernelTransactionBoundToThisThread( true ) ).thenReturn( kernelTransaction );
Neo4jTransactionalContext transactionalContext =
- new Neo4jTransactionalContext(
- null,
- guard,
- txBridge
- ,
- null,
- initialTransaction,
- initialStatement,
- null,
- kernel
- );
+ new Neo4jTransactionalContext( null, txBridge, null, initialTransaction, initialStatement, null, kernel );
transactionalContext.check();
- verify( guard ).check( kernelTransaction );
+ verify( kernelTransaction ).assertOpen();
}
@SuppressWarnings( "ConstantConditions" )
@@ -136,15 +124,8 @@ public void neverStopsExecutingQueryDuringCommitAndRestartTx()
when( secondStatement.queryRegistration() ).thenReturn( secondQueryRegistry );
Kernel kernel = mock( Kernel.class );
- Neo4jTransactionalContext context = new Neo4jTransactionalContext( queryService,
- guard,
- txBridge,
- locker,
- initialTransaction,
- initialStatement,
- executingQuery,
- kernel
- );
+ Neo4jTransactionalContext context =
+ new Neo4jTransactionalContext( queryService, txBridge, locker, initialTransaction, initialStatement, executingQuery, kernel );
// When
context.commitAndRestartTx();
@@ -221,16 +202,8 @@ public void rollsBackNewlyCreatedTransactionIfTerminationDetectedOnCloseDuringPe
when( secondStatement.queryRegistration() ).thenReturn( secondQueryRegistry );
Kernel kernel = mock( Kernel.class );
- Neo4jTransactionalContext context = new Neo4jTransactionalContext(
- queryService,
- guard,
- txBridge,
- locker,
- initialTransaction,
- initialStatement,
- executingQuery,
- kernel
- );
+ Neo4jTransactionalContext context =
+ new Neo4jTransactionalContext( queryService, txBridge, locker, initialTransaction, initialStatement, executingQuery, kernel );
// When
try
@@ -286,7 +259,7 @@ public void accumulateExecutionStatisticOverCommitAndRestart()
when( initialTransaction.terminationReason() ).thenReturn( Optional.empty() );
Kernel kernel = mock( Kernel.class );
Neo4jTransactionalContext transactionalContext = new Neo4jTransactionalContext( queryService,
- guard, txBridge, null, initialTransaction, initialStatement, null, kernel );
+ txBridge, null, initialTransaction, initialStatement, null, kernel );
statistics.setFaults( 2 );
statistics.setHits( 5 );
@@ -461,7 +434,6 @@ private void setUpMocks()
queryService = mock( GraphDatabaseQueryService.class );
DependencyResolver resolver = mock( DependencyResolver.class );
txBridge = mock( ThreadToStatementContextBridge.class );
- guard = mock( Guard.class );
initialStatement = mock( KernelStatement.class );
statistics = new ConfiguredExecutionStatistics();
@@ -472,7 +444,6 @@ private void setUpMocks()
when( initialStatement.queryRegistration() ).thenReturn( queryRegistryOperations );
when( queryService.getDependencyResolver() ).thenReturn( resolver );
when( resolver.resolveDependency( ThreadToStatementContextBridge.class ) ).thenReturn( txBridge );
- when( resolver.resolveDependency( Guard.class ) ).thenReturn( guard );
when( queryService.beginTransaction( any(), any() ) ).thenReturn( internalTransaction );
KernelTransaction mockTransaction = mockTransaction( initialStatement );
@@ -482,8 +453,7 @@ private void setUpMocks()
private Neo4jTransactionalContext newContext( InternalTransaction initialTx )
{
- return new Neo4jTransactionalContext( queryService, guard,
- txBridge, new PropertyContainerLocker(), initialTx, initialStatement, null, null );
+ return new Neo4jTransactionalContext( queryService, txBridge, new PropertyContainerLocker(), initialTx, initialStatement, null, null );
}
private KernelTransaction mockTransaction( Statement statement )