Search in sources :

Example 26 with ThreadToStatementContextBridge

use of org.neo4j.kernel.impl.core.ThreadToStatementContextBridge in project neo4j by neo4j.

the class TopLevelTransactionTest method shouldShowTransactionTerminatedExceptionAsTransient.

@Test
public void shouldShowTransactionTerminatedExceptionAsTransient() throws Exception {
    KernelTransaction kernelTransaction = mock(KernelTransaction.class);
    doReturn(true).when(kernelTransaction).isOpen();
    RuntimeException error = new TransactionTerminatedException(Status.Transaction.Terminated);
    doThrow(error).when(kernelTransaction).close();
    ThreadToStatementContextBridge bridge = new ThreadToStatementContextBridge();
    TopLevelTransaction transaction = new TopLevelTransaction(kernelTransaction, bridge);
    transaction.success();
    try {
        transaction.close();
        fail("Should have failed");
    } catch (Exception e) {
        assertThat(e, instanceOf(TransientTransactionFailureException.class));
        assertSame(error, e.getCause());
    }
}
Also used : KernelTransaction(org.neo4j.kernel.api.KernelTransaction) TransactionTerminatedException(org.neo4j.graphdb.TransactionTerminatedException) ThreadToStatementContextBridge(org.neo4j.kernel.impl.core.ThreadToStatementContextBridge) TopLevelTransaction(org.neo4j.kernel.impl.coreapi.TopLevelTransaction) TransactionTerminatedException(org.neo4j.graphdb.TransactionTerminatedException) TransientTransactionFailureException(org.neo4j.graphdb.TransientTransactionFailureException) TransientDatabaseFailureException(org.neo4j.graphdb.TransientDatabaseFailureException) TransactionFailureException(org.neo4j.kernel.api.exceptions.TransactionFailureException) TransientFailureException(org.neo4j.graphdb.TransientFailureException) Test(org.junit.Test)

Example 27 with ThreadToStatementContextBridge

use of org.neo4j.kernel.impl.core.ThreadToStatementContextBridge in project neo4j by neo4j.

the class UniqueConstraintCompatibility method suspend.

private void suspend(Transaction tx) throws Exception {
    ThreadToStatementContextBridge txManager = getTransactionManager();
    txMap.put(tx, txManager.getTopLevelTransactionBoundToThisThread(true));
    txManager.unbindTransactionFromCurrentThread();
}
Also used : ThreadToStatementContextBridge(org.neo4j.kernel.impl.core.ThreadToStatementContextBridge)

Example 28 with ThreadToStatementContextBridge

use of org.neo4j.kernel.impl.core.ThreadToStatementContextBridge in project neo4j by neo4j.

the class GraphDatabaseFacadeTest method setUp.

@Before
public void setUp() {
    queryService = mock(GraphDatabaseQueryService.class);
    DependencyResolver resolver = mock(DependencyResolver.class);
    Statement statement = mock(Statement.class, RETURNS_DEEP_STUBS);
    ThreadToStatementContextBridge contextBridge = mock(ThreadToStatementContextBridge.class);
    when(spi.queryService()).thenReturn(queryService);
    when(spi.resolver()).thenReturn(resolver);
    when(resolver.resolveDependency(ThreadToStatementContextBridge.class)).thenReturn(contextBridge);
    when(resolver.resolveDependency(Guard.class)).thenReturn(mock(Guard.class));
    when(contextBridge.get()).thenReturn(statement);
    when(resolver.resolveDependency(Config.class)).thenReturn(Config.embeddedDefaults());
    graphDatabaseFacade.init(spi);
}
Also used : GraphDatabaseQueryService(org.neo4j.kernel.GraphDatabaseQueryService) Statement(org.neo4j.kernel.api.Statement) ThreadToStatementContextBridge(org.neo4j.kernel.impl.core.ThreadToStatementContextBridge) Guard(org.neo4j.kernel.guard.Guard) DependencyResolver(org.neo4j.graphdb.DependencyResolver) Before(org.junit.Before)

Example 29 with ThreadToStatementContextBridge

use of org.neo4j.kernel.impl.core.ThreadToStatementContextBridge in project neo4j by neo4j.

the class Neo4jTransactionalContextTest method setUpMocks.

private void setUpMocks() {
    queryService = mock(GraphDatabaseQueryService.class);
    DependencyResolver resolver = mock(DependencyResolver.class);
    ThreadToStatementContextBridge txBridge = mock(ThreadToStatementContextBridge.class);
    guard = mock(Guard.class);
    initialStatement = mock(KernelStatement.class);
    QueryRegistryOperations queryRegistryOperations = mock(QueryRegistryOperations.class);
    when(initialStatement.queryRegistration()).thenReturn(queryRegistryOperations);
    when(queryService.getDependencyResolver()).thenReturn(resolver);
    when(resolver.resolveDependency(ThreadToStatementContextBridge.class)).thenReturn(txBridge);
    when(resolver.resolveDependency(Guard.class)).thenReturn(guard);
}
Also used : KernelStatement(org.neo4j.kernel.impl.api.KernelStatement) GraphDatabaseQueryService(org.neo4j.kernel.GraphDatabaseQueryService) QueryRegistryOperations(org.neo4j.kernel.api.QueryRegistryOperations) ThreadToStatementContextBridge(org.neo4j.kernel.impl.core.ThreadToStatementContextBridge) Guard(org.neo4j.kernel.guard.Guard) DependencyResolver(org.neo4j.graphdb.DependencyResolver)

Aggregations

ThreadToStatementContextBridge (org.neo4j.kernel.impl.core.ThreadToStatementContextBridge)29 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)15 Statement (org.neo4j.kernel.api.Statement)14 Test (org.junit.Test)8 Transaction (org.neo4j.graphdb.Transaction)8 DependencyResolver (org.neo4j.graphdb.DependencyResolver)6 TopLevelTransaction (org.neo4j.kernel.impl.coreapi.TopLevelTransaction)6 GraphDatabaseQueryService (org.neo4j.kernel.GraphDatabaseQueryService)5 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)5 Node (org.neo4j.graphdb.Node)4 Guard (org.neo4j.kernel.guard.Guard)4 ReadOperations (org.neo4j.kernel.api.ReadOperations)3 ExecutingQuery (org.neo4j.kernel.api.query.ExecutingQuery)3 KernelStatement (org.neo4j.kernel.impl.api.KernelStatement)3 InternalTransaction (org.neo4j.kernel.impl.coreapi.InternalTransaction)3 RemoteException (java.rmi.RemoteException)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 Map (java.util.Map)2 Before (org.junit.Before)2