From 2bb9e3d1f80b70f62ba13ef1a9863fd67eb1e394 Mon Sep 17 00:00:00 2001 From: Mikhaylo Demianenko Date: Wed, 17 Aug 2016 15:50:46 +0300 Subject: [PATCH] Use java.time.Clock instead of org.neo4j.helpers.Clock in kernel transaction stuff and releated tests --- .../src/main/java/org/neo4j/time/FakeClock.java | 6 ++++++ .../v3_0/TransactionBoundQueryContextTest.scala | 4 ++-- .../java/org/neo4j/kernel/NeoStoreDataSource.java | 6 +++--- .../neo4j/kernel/guard/GuardTimeoutException.java | 4 ++-- .../java/org/neo4j/kernel/guard/TimeoutGuard.java | 15 ++++++++------- .../neo4j/kernel/impl/api/KernelStatement.java | 6 +++--- .../impl/api/KernelTransactionImplementation.java | 6 +++--- .../neo4j/kernel/impl/api/KernelTransactions.java | 4 ++-- .../kernel/impl/factory/DataSourceModule.java | 4 ++-- .../log/checkpoint/TimeCheckPointThreshold.java | 8 ++++---- .../kernel/api/KernelTransactionFactory.java | 4 ++-- .../kernel/impl/api/KernelStatementTest.java | 7 ++++--- .../api/KernelTransactionImplementationTest.java | 2 +- .../api/KernelTransactionTerminationTest.java | 2 +- .../impl/api/KernelTransactionTestBase.java | 2 +- .../kernel/impl/api/KernelTransactionsTest.java | 6 +++--- .../impl/api/LockingStatementOperationsTest.java | 4 ++-- .../kernel/impl/api/StatementLifecycleTest.java | 5 +++-- .../kernel/impl/api/store/DiskLayerTest.java | 4 ++-- .../checkpoint/TimeCheckPointThresholdTest.java | 2 +- .../server/configuration/ServerSettings.java | 1 - 21 files changed, 55 insertions(+), 47 deletions(-) diff --git a/community/common/src/main/java/org/neo4j/time/FakeClock.java b/community/common/src/main/java/org/neo4j/time/FakeClock.java index e3adf0cc8815b..60954da6523ce 100644 --- a/community/common/src/main/java/org/neo4j/time/FakeClock.java +++ b/community/common/src/main/java/org/neo4j/time/FakeClock.java @@ -50,6 +50,12 @@ public Instant instant() return Instant.ofEpochMilli( millis ); } + @Override + public long millis() + { + return millis; + } + public FakeClock forward( long delta, TimeUnit unit ) { millis += unit.toMillis( delta ); diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_0/TransactionBoundQueryContextTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_0/TransactionBoundQueryContextTest.scala index 4db1a55775407..00ccb41cce0b5 100644 --- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_0/TransactionBoundQueryContextTest.scala +++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_0/TransactionBoundQueryContextTest.scala @@ -20,6 +20,7 @@ package org.neo4j.cypher.internal.spi.v3_0 import java.net.URL +import java.time.Clock import org.mockito.Mockito._ import org.neo4j.cypher.internal.compiler.v3_0.helpers.DynamicIterable @@ -31,7 +32,6 @@ import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService import org.neo4j.graphdb._ import org.neo4j.graphdb.config.Setting import org.neo4j.graphdb.factory.GraphDatabaseSettings -import org.neo4j.helpers.Clock import org.neo4j.kernel.api._ import org.neo4j.kernel.api.security.AccessMode import org.neo4j.kernel.impl.api.{KernelStatement, KernelTransactionImplementation} @@ -57,7 +57,7 @@ class TransactionBoundQueryContextTest extends CypherFunSuite { outerTx = mock[InternalTransaction] val kernelTransaction = mock[KernelTransactionImplementation] when(kernelTransaction.mode()).thenReturn(AccessMode.Static.FULL) - statement = new KernelStatement(kernelTransaction, null, null, null, new Procedures(), Clock.SYSTEM_CLOCK, 1L) + statement = new KernelStatement(kernelTransaction, null, null, null, new Procedures(), Clock.systemUTC, 1L) } override def afterEach() { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java index 5d1dad6780720..dc274450a1e04 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.time.Clock; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -34,7 +35,6 @@ import org.neo4j.graphdb.ResourceIterator; import org.neo4j.graphdb.config.Setting; import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.helpers.Clock; import org.neo4j.helpers.Exceptions; import org.neo4j.helpers.collection.Visitor; import org.neo4j.io.fs.FileSystemAbstraction; @@ -662,7 +662,7 @@ public long getTimestampForVersion( long version ) throws IOException long timeMillisThreshold = config.get( GraphDatabaseSettings.check_point_interval_time ); TimeCheckPointThreshold timeCheckPointThreshold = - new TimeCheckPointThreshold( timeMillisThreshold, Clock.SYSTEM_CLOCK ); + new TimeCheckPointThreshold( timeMillisThreshold, Clock.systemUTC() ); CheckPointThreshold threshold = CheckPointThresholds.or( countCommittedTransactionThreshold, timeCheckPointThreshold ); @@ -797,7 +797,7 @@ private KernelModule buildKernel( TransactionAppender appender, KernelTransactions kernelTransactions = life.add( new KernelTransactions( statementLocksFactory, constraintIndexCreator, statementOperations, schemaWriteGuard, transactionHeaderInformationFactory, transactionCommitProcess, indexConfigStore, legacyIndexProviderLookup, hooks, transactionMonitor, - life, tracers, storageEngine, procedures, transactionIdStore, config, Clock.SYSTEM_CLOCK ) ); + life, tracers, storageEngine, procedures, transactionIdStore, config, Clock.systemUTC() ) ); final Kernel kernel = new Kernel( kernelTransactions, hooks, databaseHealth, transactionMonitor, procedures, config ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/guard/GuardTimeoutException.java b/community/kernel/src/main/java/org/neo4j/kernel/guard/GuardTimeoutException.java index cabb4071d86b1..ab62581330ce5 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/guard/GuardTimeoutException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/guard/GuardTimeoutException.java @@ -24,9 +24,9 @@ public class GuardTimeoutException extends GuardException private final long overtime; - public GuardTimeoutException( final long overtime ) + public GuardTimeoutException(String message, final long overtime ) { - super( String.format( "timeout occured (overtime=%d)", overtime ) ); + super( message ); this.overtime = overtime; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/guard/TimeoutGuard.java b/community/kernel/src/main/java/org/neo4j/kernel/guard/TimeoutGuard.java index 35007421c28a1..bd38345339491 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/guard/TimeoutGuard.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/guard/TimeoutGuard.java @@ -19,9 +19,9 @@ */ package org.neo4j.kernel.guard; +import java.time.Clock; import java.util.function.Supplier; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.impl.api.KernelStatement; import org.neo4j.kernel.impl.api.KernelTransactionImplementation; import org.neo4j.logging.Log; @@ -51,13 +51,14 @@ private void check (KernelTransactionImplementation transaction) private void check( Supplier completionTimeSupplier, String timeoutDescription ) { - long now = clock.currentTimeMillis(); - long transactionCompletionTime = completionTimeSupplier.get(); - if ( transactionCompletionTime < now ) + long now = clock.millis(); + long completionTime = completionTimeSupplier.get(); + if ( completionTime < now ) { - final long overtime = now - transactionCompletionTime; - log.warn( timeoutDescription + " ( Overtime: " + overtime + " ms)." ); - throw new GuardTimeoutException( overtime ); + final long overtime = now - completionTime; + String message = timeoutDescription + " (Overtime: " + overtime + " ms)."; + log.warn( message ); + throw new GuardTimeoutException(message, overtime ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelStatement.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelStatement.java index 2ca0e4c1dac2b..e52b618e7fb00 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelStatement.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelStatement.java @@ -19,10 +19,11 @@ */ package org.neo4j.kernel.impl.api; +import java.time.Clock; + import org.neo4j.graphdb.NotInTransactionException; import org.neo4j.graphdb.TransactionTerminatedException; import org.neo4j.graphdb.security.AuthorizationViolationException; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.DataWriteOperations; import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.SchemaWriteOperations; @@ -170,7 +171,6 @@ void assertOpen() void initialize( StatementLocks statementLocks ) { this.statementLocks = statementLocks; - this.timeoutMillis = clock.currentTimeMillis(); } public StatementLocks locks() @@ -182,7 +182,7 @@ final void acquire() { if ( referenceCount++ == 0 ) { - startTimeMillis = clock.currentTimeMillis(); + startTimeMillis = clock.millis(); storeStatement.acquire(); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionImplementation.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionImplementation.java index ef638e9a147fb..8d16a94ef1bd8 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionImplementation.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionImplementation.java @@ -19,6 +19,7 @@ */ package org.neo4j.kernel.impl.api; +import java.time.Clock; import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.locks.Lock; @@ -27,7 +28,6 @@ import org.neo4j.collection.pool.Pool; import org.neo4j.graphdb.TransactionTerminatedException; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KeyReadTokenNameLookup; import org.neo4j.kernel.api.exceptions.ConstraintViolationTransactionFailureException; @@ -219,7 +219,7 @@ public KernelTransactionImplementation initialize( this.terminationReason = null; this.closing = closed = failure = success = beforeHookInvoked = false; this.writeState = TransactionWriteState.NONE; - this.startTimeMillis = clock.currentTimeMillis(); + this.startTimeMillis = clock.millis(); this.lastTransactionIdWhenStarted = lastCommittedTx; this.lastTransactionTimestampWhenStarted = lastTimeStamp; this.transactionEvent = tracer.beginTransaction(); @@ -573,7 +573,7 @@ private void commit() throws TransactionFailureException PhysicalTransactionRepresentation transactionRepresentation = new PhysicalTransactionRepresentation( extractedCommands ); TransactionHeaderInformation headerInformation = headerInformationFactory.create(); - long timeCommitted = clock.currentTimeMillis(); + long timeCommitted = clock.millis(); transactionRepresentation.setHeader( headerInformation.getAdditionalHeader(), headerInformation.getMasterId(), headerInformation.getAuthorId(), diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactions.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactions.java index efef774d2a67e..922abda433ed1 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactions.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactions.java @@ -19,6 +19,7 @@ */ package org.neo4j.kernel.impl.api; +import java.time.Clock; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -30,7 +31,6 @@ import org.neo4j.graphdb.DatabaseShutdownException; import org.neo4j.graphdb.config.Setting; import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransactionHandle; import org.neo4j.kernel.api.exceptions.Status; @@ -269,7 +269,7 @@ private void assertDatabaseIsRunning() @Override public KernelTransactionsSnapshot get() { - return new KernelTransactionsSnapshot( activeTransactions(), clock.currentTimeMillis() ); + return new KernelTransactionsSnapshot( activeTransactions(), clock.millis() ); } /** 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 212898d3b8d05..9f4dc0eadd461 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 @@ -20,6 +20,7 @@ package org.neo4j.kernel.impl.factory; import java.io.File; +import java.time.Clock; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; @@ -31,7 +32,6 @@ import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.helpers.Clock; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.pagecache.PageCache; import org.neo4j.kernel.AvailabilityGuard; @@ -263,7 +263,7 @@ private Guard buildGuard( Dependencies deps, Config config, LogService logging ) private TimeoutGuard createTimeoutGuard( LogService logging ) { - return new TimeoutGuard( logging.getInternalLog( TimeoutGuard.class ), Clock.SYSTEM_CLOCK ); + return new TimeoutGuard( logging.getInternalLog( TimeoutGuard.class ), Clock.systemUTC() ); } protected RelationshipProxy.RelationshipActions createRelationshipActions( diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThreshold.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThreshold.java index 9ee70785df07e..d01b246401222 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThreshold.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThreshold.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel.impl.transaction.log.checkpoint; -import org.neo4j.helpers.Clock; +import java.time.Clock; public class TimeCheckPointThreshold extends AbstractCheckPointThreshold { @@ -33,7 +33,7 @@ public TimeCheckPointThreshold( long timeMillisThreshold, Clock clock ) { this.timeMillisThreshold = timeMillisThreshold; this.clock = clock; - this.nextCheckPointTime = clock.currentTimeMillis() + timeMillisThreshold; + this.nextCheckPointTime = clock.millis() + timeMillisThreshold; } @@ -47,7 +47,7 @@ public void initialize( long transactionId ) protected boolean thresholdReached( long lastCommittedTransactionId ) { return lastCommittedTransactionId > lastCheckPointedTransactionId && - clock.currentTimeMillis() >= nextCheckPointTime; + clock.millis() >= nextCheckPointTime; } @Override @@ -59,7 +59,7 @@ protected String description() @Override public void checkPointHappened( long transactionId ) { - nextCheckPointTime = clock.currentTimeMillis() + timeMillisThreshold; + nextCheckPointTime = clock.millis() + timeMillisThreshold; lastCheckPointedTransactionId = transactionId; } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/KernelTransactionFactory.java b/community/kernel/src/test/java/org/neo4j/kernel/api/KernelTransactionFactory.java index c956d950511c5..2719a70bcc145 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/KernelTransactionFactory.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/KernelTransactionFactory.java @@ -19,10 +19,10 @@ */ package org.neo4j.kernel.api; +import java.time.Clock; import java.util.function.Supplier; import org.neo4j.collection.pool.Pool; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.security.AccessMode; import org.neo4j.kernel.impl.api.KernelTransactionImplementation; import org.neo4j.kernel.impl.api.SchemaWriteGuard; @@ -84,7 +84,7 @@ static Instances kernelTransactionWithInternals( AccessMode accessMode ) mock( TransactionRepresentationCommitProcess.class ), mock( TransactionMonitor.class ), mock( Supplier.class ), mock( Pool.class ), - Clock.SYSTEM_CLOCK, + Clock.systemUTC(), TransactionTracer.NULL, storageEngine, false, 1L ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelStatementTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelStatementTest.java index b9ac1df5a768d..7c4330f816c6d 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelStatementTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelStatementTest.java @@ -21,8 +21,9 @@ import org.junit.Test; +import java.time.Clock; + import org.neo4j.graphdb.TransactionTerminatedException; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.security.AccessMode; import org.neo4j.kernel.impl.proc.Procedures; @@ -42,7 +43,7 @@ public void shouldThrowTerminateExceptionWhenTransactionTerminated() throws Exce when( transaction.mode() ).thenReturn( AccessMode.Static.FULL ); KernelStatement statement = new KernelStatement( - transaction, null, null, mock( StorageStatement.class ), null, Clock.SYSTEM_CLOCK, 1L ); + transaction, null, null, mock( StorageStatement.class ), null, Clock.systemUTC(), 1L ); statement.acquire(); statement.readOperations().nodeExists( 0 ); @@ -54,7 +55,7 @@ public void shouldReleaseStorageStatementWhenForceClosed() throws Exception // given StorageStatement storeStatement = mock( StorageStatement.class ); KernelStatement statement = new KernelStatement( mock( KernelTransactionImplementation.class ), - null, null, storeStatement, new Procedures(), Clock.SYSTEM_CLOCK, 1L ); + null, null, storeStatement, new Procedures(), Clock.systemUTC(), 1L ); statement.acquire(); // when diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionImplementationTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionImplementationTest.java index d6df4db018015..dcad4b2540a65 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionImplementationTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionImplementationTest.java @@ -359,7 +359,7 @@ public void shouldAllowTerminatingFromADifferentThread() throws Exception public void shouldUseStartTimeAndTxIdFromWhenStartingTxAsHeader() throws Exception { // GIVEN a transaction starting at one point in time - long startingTime = clock.currentTimeMillis(); + long startingTime = clock.millis(); when( legacyIndexState.hasChanges() ).thenReturn( true ); doAnswer( invocation -> { diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTerminationTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTerminationTest.java index 5c29c80d0c98f..40642f0e4f249 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTerminationTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTerminationTest.java @@ -33,7 +33,6 @@ import org.neo4j.collection.pool.Pool; import org.neo4j.graphdb.TransactionTerminatedException; -import org.neo4j.helpers.FakeClock; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.TransactionFailureException; @@ -47,6 +46,7 @@ import org.neo4j.kernel.impl.transaction.TransactionMonitor; import org.neo4j.kernel.impl.transaction.tracing.TransactionTracer; import org.neo4j.storageengine.api.StorageEngine; +import org.neo4j.time.FakeClock; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertEquals; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTestBase.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTestBase.java index 55486312e29bc..10b939cc97470 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTestBase.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTestBase.java @@ -24,7 +24,6 @@ import java.util.function.Supplier; import org.neo4j.collection.pool.Pool; -import org.neo4j.helpers.FakeClock; import org.neo4j.kernel.api.KernelTransaction.Type; import org.neo4j.kernel.api.exceptions.TransactionFailureException; import org.neo4j.kernel.api.security.AccessMode; @@ -44,6 +43,7 @@ import org.neo4j.storageengine.api.StorageEngine; import org.neo4j.storageengine.api.StoreReadLayer; import org.neo4j.storageengine.api.TransactionApplicationMode; +import org.neo4j.time.FakeClock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionsTest.java index 6d733ba5e55eb..7335474caf855 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionsTest.java @@ -21,6 +21,7 @@ import org.junit.Test; +import java.time.Clock; import java.util.Collection; import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; @@ -33,7 +34,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReferenceArray; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransactionHandle; import org.neo4j.kernel.api.exceptions.Status; @@ -450,12 +450,12 @@ private static KernelTransactions newKernelTransactions( Locks locks, StorageEng TransactionHeaderInformationFactory.DEFAULT, commitProcess, null, null, new TransactionHooks(), mock( TransactionMonitor.class ), life, tracers, storageEngine, new Procedures(), transactionIdStore, Config.empty(), - Clock.SYSTEM_CLOCK ); + Clock.systemUTC() ); } return new KernelTransactions( statementLocksFactory, null, null, null, TransactionHeaderInformationFactory.DEFAULT, commitProcess, null, null, new TransactionHooks(), mock( TransactionMonitor.class ), life, - tracers, storageEngine, new Procedures(), transactionIdStore, Config.empty(), Clock.SYSTEM_CLOCK ); + tracers, storageEngine, new Procedures(), transactionIdStore, Config.empty(), Clock.systemUTC() ); } private static TransactionCommitProcess newRememberingCommitProcess( final TransactionRepresentation[] slot ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/LockingStatementOperationsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/LockingStatementOperationsTest.java index eb61cd2d24804..de8df9b81b6b9 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/LockingStatementOperationsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/LockingStatementOperationsTest.java @@ -22,11 +22,11 @@ import org.junit.Test; import org.mockito.InOrder; +import java.time.Clock; import java.util.Collections; import java.util.Iterator; import java.util.function.Function; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.constraints.NodePropertyConstraint; import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.constraints.UniquenessConstraint; @@ -74,7 +74,7 @@ public class LockingStatementOperationsTest private final KernelTransactionImplementation transaction = mock( KernelTransactionImplementation.class ); private final TxState txState = new TxState(); private final KernelStatement state = new KernelStatement( transaction, new SimpleTxStateHolder( txState ), - null, mock( StorageStatement.class ), new Procedures(), Clock.SYSTEM_CLOCK, 1L ); + null, mock( StorageStatement.class ), new Procedures(), Clock.systemUTC(), 1L ); private final SchemaStateOperations schemaStateOps; public LockingStatementOperationsTest() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/StatementLifecycleTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/StatementLifecycleTest.java index a392a875874ce..8203dcfe3ee8f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/StatementLifecycleTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/StatementLifecycleTest.java @@ -21,7 +21,8 @@ import org.junit.Test; -import org.neo4j.helpers.Clock; +import java.time.Clock; + import org.neo4j.kernel.impl.proc.Procedures; import org.neo4j.storageengine.api.StorageStatement; @@ -71,6 +72,6 @@ private KernelStatement getKernelStatement( KernelTransactionImplementation tran StorageStatement storageStatement ) { return new KernelStatement( transaction, null, null, storageStatement, new Procedures(), - Clock.SYSTEM_CLOCK, 1L ); + Clock.systemUTC(), 1L ); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/DiskLayerTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/DiskLayerTest.java index 94d357eee0b54..59b2a21a7ce53 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/DiskLayerTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/DiskLayerTest.java @@ -22,6 +22,7 @@ import org.junit.After; import org.junit.Before; +import java.time.Clock; import java.util.Map; import org.neo4j.graphdb.DependencyResolver; @@ -31,7 +32,6 @@ import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.schema.IndexDefinition; -import org.neo4j.helpers.Clock; import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.index.IndexDescriptor; @@ -69,7 +69,7 @@ public void before() db = (GraphDatabaseAPI) createGraphDatabase(); DependencyResolver resolver = db.getDependencyResolver(); this.disk = resolver.resolveDependency( StorageEngine.class ).storeReadLayer(); - this.state = new KernelStatement( null, null, null, disk.newStatement(), new Procedures(), Clock.SYSTEM_CLOCK, + this.state = new KernelStatement( null, null, null, disk.newStatement(), new Procedures(), Clock.systemUTC(), 1L ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThresholdTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThresholdTest.java index 22f16fab8f4ff..f7046958cb2d2 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThresholdTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/log/checkpoint/TimeCheckPointThresholdTest.java @@ -21,7 +21,7 @@ import org.junit.Test; -import org.neo4j.helpers.FakeClock; +import org.neo4j.time.FakeClock; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.junit.Assert.assertFalse; diff --git a/community/server/src/main/java/org/neo4j/server/configuration/ServerSettings.java b/community/server/src/main/java/org/neo4j/server/configuration/ServerSettings.java index df21fb7697e74..e6b5110440d6b 100644 --- a/community/server/src/main/java/org/neo4j/server/configuration/ServerSettings.java +++ b/community/server/src/main/java/org/neo4j/server/configuration/ServerSettings.java @@ -216,7 +216,6 @@ private ThirdPartyJaxRsPackage createThirdPartyJaxRsPackage( String packageAndMo @Description("Path of the lib directory") Setting lib_directory = pathSetting( "dbms.directories.lib", "lib" ); - //TODO: do we need this setting and mechanism at all? @Description("Timeout for idle transactions in the REST endpoint.") Setting transaction_timeout = setting( "dbms.transaction_timeout", DURATION, "60s" );