diff --git a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/socket/Chunker.java b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/socket/Chunker.java index 7dca934109b0e..979ff62e2dae2 100644 --- a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/socket/Chunker.java +++ b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/socket/Chunker.java @@ -48,17 +48,13 @@ public static byte[] chunk( int maxChunkSize, byte[][] messages ) throws IOExcep Channel ch = mock( Channel.class ); when( ch.alloc() ).thenReturn( UnpooledByteBufAllocator.DEFAULT ); - when( ch.writeAndFlush( any(), any( ChannelPromise.class ) ) ).then( new Answer() + when( ch.writeAndFlush( any(), any( ChannelPromise.class ) ) ).then( inv -> { - @Override - public Object answer( InvocationOnMock inv ) throws Throwable - { - ByteBuf buf = (ByteBuf) inv.getArguments()[0]; - outputBuffer.limit( outputBuffer.position() + buf.readableBytes() ); - buf.readBytes( outputBuffer ); - buf.release(); - return null; - } + ByteBuf buf = (ByteBuf) inv.getArguments()[0]; + outputBuffer.limit( outputBuffer.position() + buf.readableBytes() ); + buf.readBytes( outputBuffer ); + buf.release(); + return null; } ); ChunkedOutput out = new ChunkedOutput( ch, maxChunkSize + 2 /* for chunk header */ ); diff --git a/community/codegen/src/main/java/org/neo4j/codegen/source/WarningsHandler.java b/community/codegen/src/main/java/org/neo4j/codegen/source/WarningsHandler.java index 7d923bb1bcb57..82257f7d3c23b 100644 --- a/community/codegen/src/main/java/org/neo4j/codegen/source/WarningsHandler.java +++ b/community/codegen/src/main/java/org/neo4j/codegen/source/WarningsHandler.java @@ -25,12 +25,8 @@ interface WarningsHandler { - WarningsHandler NO_WARNINGS_HANDLER = new WarningsHandler() + WarningsHandler NO_WARNINGS_HANDLER = diagnostics -> { - @Override - public void handle( List> diagnostics ) - { - } }; void handle( List> diagnostics ); diff --git a/community/collections/src/test/java/org/neo4j/helpers/collection/ExceptionHandlingIterableTest.java b/community/collections/src/test/java/org/neo4j/helpers/collection/ExceptionHandlingIterableTest.java index 18708cf5a27f1..cf4e9d94ee685 100644 --- a/community/collections/src/test/java/org/neo4j/helpers/collection/ExceptionHandlingIterableTest.java +++ b/community/collections/src/test/java/org/neo4j/helpers/collection/ExceptionHandlingIterableTest.java @@ -34,12 +34,9 @@ public class ExceptionHandlingIterableTest @Test( expected = IllegalStateException.class ) public void testHandleExceptionOnIteratorCreation() { - Iterables.count( new ExceptionHandlingIterable( new Iterable() + Iterables.count( new ExceptionHandlingIterable( () -> { - public Iterator iterator() - { - throw new RuntimeException( "exception on iterator" ); - } + throw new RuntimeException( "exception on iterator" ); } ) { protected Iterator exceptionOnIterator( Throwable t ) @@ -53,26 +50,20 @@ protected Iterator exceptionOnIterator( Throwable t ) @Test( expected = IllegalStateException.class ) public void testHandleExceptionOnNext() { - Iterables.count( new ExceptionHandlingIterable( new Iterable() + Iterables.count( new ExceptionHandlingIterable( () -> new Iterator() { - public Iterator iterator() + public boolean hasNext() { - return new Iterator() - { - public boolean hasNext() - { - return true; - } + return true; + } - public Object next() - { - throw new RuntimeException( "exception on next" ); - } + public Object next() + { + throw new RuntimeException( "exception on next" ); + } - public void remove() - { - } - }; + public void remove() + { } } ) { @@ -88,26 +79,20 @@ protected Object exceptionOnNext( Throwable t ) @Test( expected = IllegalStateException.class ) public void testHandleExceptionOnHasNext() { - Iterables.count( new ExceptionHandlingIterable( new Iterable() + Iterables.count( new ExceptionHandlingIterable( () -> new Iterator() { - public Iterator iterator() + public boolean hasNext() { - return new Iterator() - { - public boolean hasNext() - { - throw new RuntimeException( "exception on next" ); - } + throw new RuntimeException( "exception on next" ); + } - public Object next() - { - return null; - } + public Object next() + { + return null; + } - public void remove() - { - } - }; + public void remove() + { } } ) { diff --git a/community/common/src/test/java/org/neo4j/test/Barrier.java b/community/common/src/test/java/org/neo4j/test/Barrier.java index 204cfae874748..d4b53f86e09d6 100644 --- a/community/common/src/test/java/org/neo4j/test/Barrier.java +++ b/community/common/src/test/java/org/neo4j/test/Barrier.java @@ -34,12 +34,8 @@ */ public interface Barrier { - Barrier NONE = new Barrier() + Barrier NONE = () -> { - @Override - public void reached() - { - } }; void reached(); diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/NodeDynamicLabelOrphanChainStartCheck.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/NodeDynamicLabelOrphanChainStartCheck.java index a2a4fb8b736f9..93b5566e3f0d2 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/NodeDynamicLabelOrphanChainStartCheck.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/NodeDynamicLabelOrphanChainStartCheck.java @@ -41,30 +41,24 @@ public class NodeDynamicLabelOrphanChainStartCheck private static final ComparativeRecordChecker VALID_NODE_RECORD = - new ComparativeRecordChecker() + ( record, nodeRecord, engine, records ) -> { - @Override - public void checkReference( DynamicRecord record, NodeRecord nodeRecord, - CheckerEngine engine, - RecordAccess records ) + if ( ! nodeRecord.inUse() ) { - if ( ! nodeRecord.inUse() ) - { - // if this node record is not in use it is not a valid owner - engine.report().orphanDynamicLabelRecordDueToInvalidOwner( nodeRecord ); - } - else + // if this node record is not in use it is not a valid owner + engine.report().orphanDynamicLabelRecordDueToInvalidOwner( nodeRecord ); + } + else + { + // if this node record is in use but doesn't point to the dynamic label record + // that label record has an invalid owner + long recordId = record.getId(); + if ( fieldPointsToDynamicRecordOfLabels( nodeRecord.getLabelField() ) ) { - // if this node record is in use but doesn't point to the dynamic label record - // that label record has an invalid owner - long recordId = record.getId(); - if ( fieldPointsToDynamicRecordOfLabels( nodeRecord.getLabelField() ) ) + long dynamicLabelRecordId = firstDynamicLabelRecordId( nodeRecord.getLabelField() ); + if ( dynamicLabelRecordId != recordId ) { - long dynamicLabelRecordId = firstDynamicLabelRecordId( nodeRecord.getLabelField() ); - if ( dynamicLabelRecordId != recordId ) - { - engine.report().orphanDynamicLabelRecordDueToInvalidOwner( nodeRecord ); - } + engine.report().orphanDynamicLabelRecordDueToInvalidOwner( nodeRecord ); } } } diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/OwnerChain.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/OwnerChain.java index 780402b229624..08c154585a87e 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/OwnerChain.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/OwnerChain.java @@ -68,26 +68,20 @@ void wrongOwner( ConsistencyReport.PropertyConsistencyReport report ) private final ComparativeRecordChecker OWNER_CHECK = - new ComparativeRecordChecker() + ( record, owner, engine, records ) -> { - @Override - public void checkReference( PropertyRecord record, PrimitiveRecord owner, - CheckerEngine engine, - RecordAccess records ) + if ( !owner.inUse() && !record.inUse() ) { - if ( !owner.inUse() && !record.inUse() ) - { - return; - } - if ( !owner.inUse() || Record.NO_NEXT_PROPERTY.is( owner.getNextProp() ) ) - { - wrongOwner( engine.report() ); - } - else if ( owner.getNextProp() != record.getId() ) - { - engine.comparativeCheck( property( records, owner.getNextProp() ), - OwnerChain.this ); - } + return; + } + if ( !owner.inUse() || Record.NO_NEXT_PROPERTY.is( owner.getNextProp() ) ) + { + wrongOwner( engine.report() ); + } + else if ( owner.getNextProp() != record.getId() ) + { + engine.comparativeCheck( property( records, owner.getNextProp() ), + OwnerChain.this ); } }; diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/PrimitiveRecordCheck.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/PrimitiveRecordCheck.java index 742e186f5727e..4ad21bee27cf0 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/PrimitiveRecordCheck.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/PrimitiveRecordCheck.java @@ -34,30 +34,25 @@ public abstract class PrimitiveRecordCheck { private final RecordField[] fields; private final ComparativeRecordChecker ownerCheck = - new ComparativeRecordChecker() + ( record, other, engine, records ) -> { - @Override - public void checkReference( RECORD record, PrimitiveRecord other, CheckerEngine engine, - RecordAccess records ) + if ( record.getId() == other.getId() && record.getClass() == other.getClass() ) { - if ( record.getId() == other.getId() && record.getClass() == other.getClass() ) - { - // Owner identities match. Things are as they should be. - return; - } + // Owner identities match. Things are as they should be. + return; + } - if ( other instanceof NodeRecord ) - { - engine.report().multipleOwners( (NodeRecord) other ); - } - else if ( other instanceof RelationshipRecord ) - { - engine.report().multipleOwners( (RelationshipRecord) other ); - } - else if ( other instanceof NeoStoreRecord ) - { - engine.report().multipleOwners( (NeoStoreRecord) other ); - } + if ( other instanceof NodeRecord ) + { + engine.report().multipleOwners( (NodeRecord) other ); + } + else if ( other instanceof RelationshipRecord ) + { + engine.report().multipleOwners( (RelationshipRecord) other ); + } + else if ( other instanceof NeoStoreRecord ) + { + engine.report().multipleOwners( (NeoStoreRecord) other ); } }; diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/SchemaRecordCheck.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/SchemaRecordCheck.java index 7c38af30b121e..cc28d6903ab3f 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/SchemaRecordCheck.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/SchemaRecordCheck.java @@ -269,50 +269,31 @@ private void checkForDuplicates( SchemaRule rule, DynamicRecord record, private static final ComparativeRecordChecker VALID_LABEL = - new ComparativeRecordChecker() - { - @Override - public void checkReference( DynamicRecord record, LabelTokenRecord labelTokenRecord, - CheckerEngine engine, - RecordAccess records ) - { - if ( !labelTokenRecord.inUse() ) + ( record, labelTokenRecord, engine, records ) -> { - engine.report().labelNotInUse( labelTokenRecord ); - } - } - }; + if ( !labelTokenRecord.inUse() ) + { + engine.report().labelNotInUse( labelTokenRecord ); + } + }; private static final ComparativeRecordChecker VALID_RELATIONSHIP_TYPE = - new ComparativeRecordChecker() - { - @Override - public void checkReference( DynamicRecord record, RelationshipTypeTokenRecord relTypeTokenRecord, - CheckerEngine engine, - RecordAccess records ) - { - if ( !relTypeTokenRecord.inUse() ) + ( record, relTypeTokenRecord, engine, records ) -> { - engine.report().relationshipTypeNotInUse( relTypeTokenRecord ); - } - } - }; + if ( !relTypeTokenRecord.inUse() ) + { + engine.report().relationshipTypeNotInUse( relTypeTokenRecord ); + } + }; private static final ComparativeRecordChecker VALID_PROPERTY_KEY = - new ComparativeRecordChecker() - { - @Override - public void checkReference( DynamicRecord record, PropertyKeyTokenRecord propertyKeyTokenRecord, - CheckerEngine engine, - RecordAccess records ) - { - if ( !propertyKeyTokenRecord.inUse() ) + ( record, propertyKeyTokenRecord, engine, records ) -> { - engine.report().propertyKeyNotInUse( propertyKeyTokenRecord ); - } - } - }; + if ( !propertyKeyTokenRecord.inUse() ) + { + engine.report().propertyKeyNotInUse( propertyKeyTokenRecord ); + } + }; } diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/DynamicOwner.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/DynamicOwner.java index df7626091b456..e1853ce706355 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/DynamicOwner.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/DynamicOwner.java @@ -40,16 +40,7 @@ abstract class DynamicOwner implements Owner { static final ComparativeRecordChecker ORPHAN_CHECK = - new ComparativeRecordChecker() - { - @Override - public void checkReference( DynamicRecord record, AbstractBaseRecord ignored, - CheckerEngine engine, - RecordAccess records ) - { - engine.report().orphanDynamicRecord(); - } - }; + ( record, ignored, engine, records ) -> engine.report().orphanDynamicRecord(); abstract RecordReference record( RecordAccess records ); diff --git a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/OwnerCheck.java b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/OwnerCheck.java index 0b911595b9139..7a83060c3db5e 100644 --- a/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/OwnerCheck.java +++ b/community/consistency-check/src/main/java/org/neo4j/consistency/checking/full/OwnerCheck.java @@ -204,48 +204,42 @@ public RecordCheck decoratePropertyCh { return checker; } - return new RecordCheck() + return ( record, engine, records ) -> { - @Override - public void check( PropertyRecord record, - CheckerEngine engine, - RecordAccess records ) + if ( record.inUse() ) { - if ( record.inUse() ) - { - if ( owners != null && Record.NO_PREVIOUS_PROPERTY.is( record.getPrevProp() ) ) - { // this record is first in a chain - PropertyOwner.UnknownOwner owner = new PropertyOwner.UnknownOwner(); - engine.comparativeCheck( owner, ORPHAN_CHECKER ); - if ( null == owners.putIfAbsent( record.getId(), owner ) ) - { - owner.markInCustody(); - } + if ( owners != null && Record.NO_PREVIOUS_PROPERTY.is( record.getPrevProp() ) ) + { // this record is first in a chain + PropertyOwner.UnknownOwner owner = new PropertyOwner.UnknownOwner(); + engine.comparativeCheck( owner, ORPHAN_CHECKER ); + if ( null == owners.putIfAbsent( record.getId(), owner ) ) + { + owner.markInCustody(); } - if ( dynamics != null ) + } + if ( dynamics != null ) + { + for ( PropertyBlock block : record ) { - for ( PropertyBlock block : record ) + RecordType type = recordType( block.forceGetType() ); + if ( type != null ) { - RecordType type = recordType( block.forceGetType() ); - if ( type != null ) + ConcurrentMap dynamicOwners = dynamics.get( type ); + if ( dynamicOwners != null ) { - ConcurrentMap dynamicOwners = dynamics.get( type ); - if ( dynamicOwners != null ) + long id = block.getSingleValueLong(); + DynamicOwner.Property owner = new DynamicOwner.Property( type, record ); + DynamicOwner prev = dynamicOwners.put( id, owner ); + if ( prev != null ) { - long id = block.getSingleValueLong(); - DynamicOwner.Property owner = new DynamicOwner.Property( type, record ); - DynamicOwner prev = dynamicOwners.put( id, owner ); - if ( prev != null ) - { - engine.comparativeCheck( prev.record( records ), owner ); - } + engine.comparativeCheck( prev.record( records ), owner ); } } } } } - checker.check( record, engine, records ); } + checker.check( record, engine, records ); }; } @@ -334,33 +328,27 @@ RecordCheck decorateDynamicChecker( { return checker; } - return new RecordCheck() + return ( record, engine, records ) -> { - @Override - public void check( DynamicRecord record, - CheckerEngine engine, - RecordAccess records ) + if ( record.inUse() ) { - if ( record.inUse() ) + DynamicOwner.Unknown owner = new DynamicOwner.Unknown(); + engine.comparativeCheck( owner, DynamicOwner.ORPHAN_CHECK ); + if ( null == dynamicOwners.putIfAbsent( record.getId(), owner ) ) { - DynamicOwner.Unknown owner = new DynamicOwner.Unknown(); - engine.comparativeCheck( owner, DynamicOwner.ORPHAN_CHECK ); - if ( null == dynamicOwners.putIfAbsent( record.getId(), owner ) ) - { - owner.markInCustody(); - } - if ( !Record.NO_NEXT_BLOCK.is( record.getNextBlock() ) ) + owner.markInCustody(); + } + if ( !Record.NO_NEXT_BLOCK.is( record.getNextBlock() ) ) + { + DynamicOwner.Dynamic nextOwner = new DynamicOwner.Dynamic( type, record ); + DynamicOwner prevOwner = dynamicOwners.put( record.getNextBlock(), nextOwner ); + if ( prevOwner != null ) { - DynamicOwner.Dynamic nextOwner = new DynamicOwner.Dynamic( type, record ); - DynamicOwner prevOwner = dynamicOwners.put( record.getNextBlock(), nextOwner ); - if ( prevOwner != null ) - { - engine.comparativeCheck( prevOwner.record( records ), nextOwner ); - } + engine.comparativeCheck( prevOwner.record( records ), nextOwner ); } } - checker.check( record, engine, records ); } + checker.check( record, engine, records ); }; } diff --git a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java index bffe7b081f1b9..d82961a040a85 100644 --- a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java +++ b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java @@ -2086,15 +2086,11 @@ private ConsistencySummaryStatistics check( DirectStoreAccess stores ) throws Co FullCheck checker = new FullCheck( config, ProgressMonitorFactory.NONE, fixture.getAccessStatistics(), defaultConsistencyCheckThreadsNumber() ); return checker.execute( stores, FormattedLog.toOutputStream( System.out ), - new ConsistencyReporter.Monitor() + ( report, method, message ) -> { - @Override - public void reported( Class report, String method, String message ) - { - Set types = allReports.get( report ); - assert types != null; - types.remove( method ); - } + Set types = allReports.get( report ); + assert types != null; + types.remove( method ); } ); } diff --git a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/RecordCheckWorkerTest.java b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/RecordCheckWorkerTest.java index da75ed7d4f935..32d640011319c 100644 --- a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/RecordCheckWorkerTest.java +++ b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/RecordCheckWorkerTest.java @@ -63,26 +63,22 @@ public void init( int id ) ArrayBlockingQueue queue = new ArrayBlockingQueue<>( 10 ); race.addContestant( workers[id] = new RecordCheckWorker<>( id, coordination, queue, processor ) ); } - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + try { - try + long end = currentTimeMillis() + SECONDS.toMillis( 100 ); + while ( currentTimeMillis() < end && expected.get() < threads ) { - long end = currentTimeMillis() + SECONDS.toMillis( 100 ); - while ( currentTimeMillis() < end && expected.get() < threads ) - { - parkNanos( MILLISECONDS.toNanos( 10 ) ); - } - assertEquals( threads, expected.get() ); + parkNanos( MILLISECONDS.toNanos( 10 ) ); } - finally + assertEquals( threads, expected.get() ); + } + finally + { + for ( RecordCheckWorker worker : workers ) { - for ( RecordCheckWorker worker : workers ) - { - worker.done(); - } + worker.done(); } } } ); diff --git a/community/consistency-check/src/test/java/org/neo4j/consistency/report/ConsistencyReporterTest.java b/community/consistency-check/src/test/java/org/neo4j/consistency/report/ConsistencyReporterTest.java index eaf1321de0922..a8e12bb609513 100644 --- a/community/consistency-check/src/test/java/org/neo4j/consistency/report/ConsistencyReporterTest.java +++ b/community/consistency-check/src/test/java/org/neo4j/consistency/report/ConsistencyReporterTest.java @@ -277,27 +277,20 @@ public static List methods() } @Rule - public final TestRule logFailure = new TestRule() + public final TestRule logFailure = ( base, description ) -> new Statement() { @Override - public Statement apply( final Statement base, org.junit.runner.Description description ) + public void evaluate() throws Throwable { - return new Statement() + try { - @Override - public void evaluate() throws Throwable - { - try - { - base.evaluate(); - } - catch ( Throwable failure ) - { - System.err.println( "Failure in " + TestAllReportMessages.this + ": " + failure ); - throw failure; - } - } - }; + base.evaluate(); + } + catch ( Throwable failure ) + { + System.err.println( "Failure in " + TestAllReportMessages.this + ": " + failure ); + throw failure; + } } }; diff --git a/community/consistency-check/src/test/java/org/neo4j/consistency/store/RecordAccessStub.java b/community/consistency-check/src/test/java/org/neo4j/consistency/store/RecordAccessStub.java index f87199240a794..032242c178ee2 100644 --- a/community/consistency-check/src/test/java/org/neo4j/consistency/store/RecordAccessStub.java +++ b/community/consistency-check/src/test/java/org/neo4j/consistency/store/RecordAccessStub.java @@ -110,21 +110,16 @@ public void comparativeCheck( final RecordReference other, final ComparativeRecordChecker checker ) { - deferredTasks.add( new Runnable() + deferredTasks.add( () -> { - @Override - @SuppressWarnings( "unchecked" ) - public void run() - { - PendingReferenceCheck mock = mock( PendingReferenceCheck.class ); - DeferredReferenceCheck check = new DeferredReferenceCheck( Engine.this, checker ); - doAnswer( check ).when( mock ).checkReference( any( AbstractBaseRecord.class ), + PendingReferenceCheck mock = mock( PendingReferenceCheck.class ); + DeferredReferenceCheck check = new DeferredReferenceCheck( Engine.this, checker ); + doAnswer( check ).when( mock ).checkReference( any( AbstractBaseRecord.class ), + any( RecordAccess.class ) ); + doAnswer( check ).when( mock ).checkDiffReference( any( AbstractBaseRecord.class ), + any( AbstractBaseRecord.class ), any( RecordAccess.class ) ); - doAnswer( check ).when( mock ).checkDiffReference( any( AbstractBaseRecord.class ), - any( AbstractBaseRecord.class ), - any( RecordAccess.class ) ); - other.dispatch( mock ); - } + other.dispatch( mock ); } ); } diff --git a/community/cypher/cypher-compiler-3.3/src/main/java/org/neo4j/cypher/internal/compiler/v3_3/common/CypherOrderability.java b/community/cypher/cypher-compiler-3.3/src/main/java/org/neo4j/cypher/internal/compiler/v3_3/common/CypherOrderability.java index 9707e1e3ded13..2fc707b43c366 100644 --- a/community/cypher/cypher-compiler-3.3/src/main/java/org/neo4j/cypher/internal/compiler/v3_3/common/CypherOrderability.java +++ b/community/cypher/cypher-compiler-3.3/src/main/java/org/neo4j/cypher/internal/compiler/v3_3/common/CypherOrderability.java @@ -198,148 +198,98 @@ else if ( value instanceof Path ) throw new UnorderableValueException( value.getClass().getSimpleName() ); } - public static Comparator TYPE_ID_COMPARATOR = new Comparator() - { - @Override - public int compare( SuperType left, SuperType right ) - { - return left.typeId - right.typeId; - } - }; + public static Comparator TYPE_ID_COMPARATOR = ( left, right ) -> left.typeId - right.typeId; } // NOTE: nulls are handled at the top of the public compare() method // so the type-specific comparators should not check arguments for null - private static Comparator FALLBACK_COMPARATOR = new Comparator() + private static Comparator FALLBACK_COMPARATOR = ( lhs, rhs ) -> { - @Override - public int compare( Object lhs, Object rhs ) + if ( lhs.getClass().isAssignableFrom( rhs.getClass() ) && + lhs instanceof Comparable && + rhs instanceof Comparable ) { - if ( lhs.getClass().isAssignableFrom( rhs.getClass() ) && - lhs instanceof Comparable && - rhs instanceof Comparable ) - { - return ((Comparable) lhs).compareTo( rhs ); - } - - throw new IncomparableValuesException( lhs.getClass().getSimpleName(), rhs.getClass().getSimpleName() ); + return ((Comparable) lhs).compareTo( rhs ); } + + throw new IncomparableValuesException( lhs.getClass().getSimpleName(), rhs.getClass().getSimpleName() ); }; - private static Comparator VOID_COMPARATOR = new Comparator() + private static Comparator VOID_COMPARATOR = ( lhs, rhs ) -> 0; + + private static Comparator NUMBER_COMPARATOR = ( lhs, rhs ) -> { - @Override - public int compare( Object lhs, Object rhs ) + // If floats, compare float values. If integer types, compare long values + if ( lhs instanceof Double && rhs instanceof Float ) { - return 0; + return ((Double) lhs).compareTo( rhs.doubleValue() ); } - }; - - private static Comparator NUMBER_COMPARATOR = new Comparator() - { - @Override - public int compare( Number lhs, Number rhs ) + else if ( lhs instanceof Float && rhs instanceof Double ) { - // If floats, compare float values. If integer types, compare long values - if ( lhs instanceof Double && rhs instanceof Float ) - { - return ((Double) lhs).compareTo( rhs.doubleValue() ); - } - else if ( lhs instanceof Float && rhs instanceof Double ) - { - return -((Double) rhs).compareTo( lhs.doubleValue() ); - } - else if ( lhs instanceof Float && rhs instanceof Float ) - { - return ((Float) lhs).compareTo( (Float) rhs ); - } - else if ( lhs instanceof Double && rhs instanceof Double ) - { - return ((Double) lhs).compareTo( (Double) rhs ); - } - // Right hand side is neither Float nor Double - else if ( lhs instanceof Double || lhs instanceof Float ) - { - return MathUtil.compareDoubleAgainstLong( lhs.doubleValue(), rhs.longValue() ); - } - // Left hand side is neither Float nor Double - else if ( rhs instanceof Double || rhs instanceof Float ) - { - return -MathUtil.compareDoubleAgainstLong( rhs.doubleValue(), lhs.longValue() ); - } - // Everything else is a long from Cypher's point-of-view - return Long.compare( lhs.longValue(), rhs.longValue() ); + return -((Double) rhs).compareTo( lhs.doubleValue() ); } - }; - - private static Comparator STRING_COMPARATOR = new Comparator() - { - @Override - public int compare( Object lhs, Object rhs ) + else if ( lhs instanceof Float && rhs instanceof Float ) { - if ( lhs instanceof Character && rhs instanceof String ) - { - return lhs.toString().compareTo( (String) rhs ); - } - else if ( lhs instanceof String && rhs instanceof Character ) - { - return ((String) lhs).compareTo( rhs.toString() ); - } - else - { - return ((Comparable) lhs).compareTo( rhs ); - } + return ((Float) lhs).compareTo( (Float) rhs ); } - }; - - private static Comparator BOOLEAN_COMPARATOR = new Comparator() - { - @Override - public int compare( Boolean lhs, Boolean rhs ) + else if ( lhs instanceof Double && rhs instanceof Double ) { - return lhs.compareTo( rhs ); + return ((Double) lhs).compareTo( (Double) rhs ); } - }; - - private static Comparator NODE_COMPARATOR = new Comparator() - { - @Override - public int compare( NodeIdWrapper lhs, NodeIdWrapper rhs ) + // Right hand side is neither Float nor Double + else if ( lhs instanceof Double || lhs instanceof Float ) + { + return MathUtil.compareDoubleAgainstLong( lhs.doubleValue(), rhs.longValue() ); + } + // Left hand side is neither Float nor Double + else if ( rhs instanceof Double || rhs instanceof Float ) { - return Long.compare( lhs.id(), rhs.id() ); + return -MathUtil.compareDoubleAgainstLong( rhs.doubleValue(), lhs.longValue() ); } + // Everything else is a long from Cypher's point-of-view + return Long.compare( lhs.longValue(), rhs.longValue() ); }; - private static Comparator RELATIONSHIP_COMPARATOR = new Comparator() + private static Comparator STRING_COMPARATOR = ( lhs, rhs ) -> { - @Override - public int compare( RelationshipIdWrapper lhs, RelationshipIdWrapper rhs ) + if ( lhs instanceof Character && rhs instanceof String ) { - return Long.compare( lhs.id(), rhs.id() ); + return lhs.toString().compareTo( (String) rhs ); + } + else if ( lhs instanceof String && rhs instanceof Character ) + { + return ((String) lhs).compareTo( rhs.toString() ); + } + else + { + return ((Comparable) lhs).compareTo( rhs ); } }; + private static Comparator BOOLEAN_COMPARATOR = ( lhs, rhs ) -> lhs.compareTo( rhs ); + + private static Comparator NODE_COMPARATOR = ( lhs, rhs ) -> Long.compare( lhs.id(), rhs.id() ); + + private static Comparator RELATIONSHIP_COMPARATOR = + ( lhs, rhs ) -> Long.compare( lhs.id(), rhs.id() ); + // TODO test - private static Comparator PATH_COMPARATOR = new Comparator() + private static Comparator PATH_COMPARATOR = ( lhs, rhs ) -> { - @Override - public int compare( Path lhs, Path rhs ) + Iterator lhsIter = lhs.iterator(); + Iterator rhsIter = lhs.iterator(); + while ( lhsIter.hasNext() && rhsIter.hasNext() ) { - Iterator lhsIter = lhs.iterator(); - Iterator rhsIter = lhs.iterator(); - while ( lhsIter.hasNext() && rhsIter.hasNext() ) + int result = compare( lhsIter.next(), rhsIter.next() ); + if ( 0 != result ) { - int result = CypherOrderability.compare( lhsIter.next(), rhsIter.next() ); - if ( 0 != result ) - { - return result; - } + return result; } - return (lhsIter.hasNext()) ? 1 - : (rhsIter.hasNext()) ? -1 - : 0; } + return (lhsIter.hasNext()) ? 1 + : (rhsIter.hasNext()) ? -1 + : 0; }; private static Comparator LIST_COMPARATOR = new Comparator() diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/tracing/TimingCompilationTracer.java b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/tracing/TimingCompilationTracer.java index d089bccae5c17..0bd35a03444ac 100644 --- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/tracing/TimingCompilationTracer.java +++ b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/tracing/TimingCompilationTracer.java @@ -52,14 +52,7 @@ interface Clock { long nanoTime(); - Clock SYSTEM = new Clock() - { - @Override - public long nanoTime() - { - return System.nanoTime(); - } - }; + Clock SYSTEM = () -> System.nanoTime(); } private final Clock clock; diff --git a/community/cypher/cypher/src/test/java/org/neo4j/cypher/export/ExportTest.java b/community/cypher/cypher/src/test/java/org/neo4j/cypher/export/ExportTest.java index 2e8a1fa077679..48a48a89ec5c2 100644 --- a/community/cypher/cypher/src/test/java/org/neo4j/cypher/export/ExportTest.java +++ b/community/cypher/cypher/src/test/java/org/neo4j/cypher/export/ExportTest.java @@ -352,22 +352,8 @@ public void remove() }; Mockito.when( result.iterator() ).thenReturn( iterator ); - Mockito.when( result.hasNext() ).thenAnswer( new Answer() - { - @Override - public Boolean answer( InvocationOnMock invocation ) throws Throwable - { - return iterator.hasNext(); - } - } ); - Mockito.when( result.next() ).thenAnswer( new Answer>() - { - @Override - public Map answer( InvocationOnMock invocation ) throws Throwable - { - return iterator.next(); - } - } ); + Mockito.when( result.hasNext() ).thenAnswer( invocation -> iterator.hasNext() ); + Mockito.when( result.next() ).thenAnswer( invocation -> iterator.next() ); return result; } diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/Dijkstra.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/Dijkstra.java index 25f688289a0ee..7a80d20123e6a 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/Dijkstra.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/Dijkstra.java @@ -164,15 +164,8 @@ public Dijkstra( PathExpander expander, CostEvaluator costEvaluator, dou public Iterable findAllPaths( Node start, final Node end ) { final Traverser traverser = traverser( start, end, interest ); - return new Iterable() - { - @Override - public Iterator iterator() - { - return new WeightedPathIterator( traverser.iterator(), costEvaluator, epsilon, - interest ); - } - }; + return () -> new WeightedPathIterator( traverser.iterator(), costEvaluator, epsilon, + interest ); } private Traverser traverser( Node start, final Node end, PathInterest interest ) diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/DijkstraBidirectional.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/DijkstraBidirectional.java index b708d8b04d5c3..818bcfb7fbd67 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/DijkstraBidirectional.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/DijkstraBidirectional.java @@ -22,7 +22,6 @@ import org.apache.commons.lang3.mutable.MutableDouble; import java.util.Collections; -import java.util.function.Predicate; import org.neo4j.graphalgo.CostEvaluator; import org.neo4j.graphalgo.PathFinder; @@ -38,11 +37,8 @@ import org.neo4j.graphdb.PathExpander; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.traversal.BidirectionalTraversalDescription; -import org.neo4j.graphdb.traversal.BranchCollisionDetector; -import org.neo4j.graphdb.traversal.BranchCollisionPolicy; import org.neo4j.graphdb.traversal.BranchState; import org.neo4j.graphdb.traversal.Evaluation; -import org.neo4j.graphdb.traversal.Evaluator; import org.neo4j.graphdb.traversal.Evaluators; import org.neo4j.graphdb.traversal.InitialBranchState; import org.neo4j.graphdb.traversal.PathEvaluator; @@ -128,15 +124,9 @@ private Traverser traverser( Node start, final Node end, PathInterest interest ) .startSide( startSide ) .endSide( endSide ) .collisionEvaluator( Evaluators.all() ) - .collisionPolicy( new BranchCollisionPolicy() - { - @Override - public BranchCollisionDetector create( Evaluator evaluator, Predicate pathPredicate ) - { - return new DijkstraBranchCollisionDetector( evaluator, costEvaluator, shortestSoFar, epsilon, - pathPredicate ); - } - } ); + .collisionPolicy( ( evaluator, pathPredicate ) -> + new DijkstraBranchCollisionDetector( evaluator, costEvaluator, shortestSoFar, epsilon, + pathPredicate ) ); lastTraverser = traversal.traverse( start, end ); return lastTraverser; diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ExactDepthPathFinder.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ExactDepthPathFinder.java index e16ad8ee21939..46412cf5fd7d2 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ExactDepthPathFinder.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ExactDepthPathFinder.java @@ -65,14 +65,8 @@ protected Traverser instantiateTraverser( Node start, Node end ) { GraphDatabaseService db = start.getGraphDatabase(); TraversalDescription side = - db.traversalDescription().breadthFirst().uniqueness( uniqueness ).order( new BranchOrderingPolicy() - { - @Override - public BranchSelector create( TraversalBranch startSource, PathExpander expander ) - { - return new LiteDepthFirstSelector( startSource, startThreshold, expander ); - } - } ); + db.traversalDescription().breadthFirst().uniqueness( uniqueness ).order( + ( startSource, expander ) -> new LiteDepthFirstSelector( startSource, startThreshold, expander ) ); return db.bidirectionalTraversalDescription().startSide( side.expand( expander ).evaluator( toDepth( onDepth / 2 ) ) ) .endSide( side.expand( expander.reverse() ).evaluator( toDepth( onDepth - onDepth / 2 ) ) ) .collisionEvaluator( atDepth( onDepth ) ) diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/TraversalAStar.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/TraversalAStar.java index cf423156c9206..9cb9c9d0404b3 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/TraversalAStar.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/TraversalAStar.java @@ -122,14 +122,7 @@ private Iterable findPaths( Node start, Node end, boolean multiple new SelectorFactory( end, interest ) ) .evaluator( includeWhereEndNodeIs( end ) ) .traverse( start ); - return new Iterable() - { - @Override - public Iterator iterator() - { - return new WeightedPathIterator( lastTraverser.iterator(), costEvaluator, stopAfterLowestWeight ); - } - }; + return () -> new WeightedPathIterator( lastTraverser.iterator(), costEvaluator, stopAfterLowestWeight ); } @Override diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/DijkstraPriorityQueueImpl.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/DijkstraPriorityQueueImpl.java index 645f7785218c0..2f9ecd993f9a7 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/DijkstraPriorityQueueImpl.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/DijkstraPriorityQueueImpl.java @@ -107,13 +107,7 @@ public DijkstraPriorityQueueImpl( final Comparator costComparator ) { super(); this.costComparator = costComparator; - queue = new PriorityQueue( 11, new Comparator() - { - public int compare( pathObject o1, pathObject o2 ) - { - return costComparator.compare( o1.getCost(), o2.getCost() ); - } - } ); + queue = new PriorityQueue( 11, ( o1, o2 ) -> costComparator.compare( o1.getCost(), o2.getCost() ) ); } public void insertValue( Node node, CostType value ) diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/BestFirstSelectorFactory.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/BestFirstSelectorFactory.java index b33b90471260f..ed36a4b49da4e 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/BestFirstSelectorFactory.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/BestFirstSelectorFactory.java @@ -145,12 +145,5 @@ protected abstract P addPriority( TraversalBranch source, protected abstract D calculateValue( TraversalBranch next ); public static final Converter CONVERTER = - new Converter() - { - @Override - public Node convert( TraversalBranch source ) - { - return source.endNode(); - } - }; + source -> source.endNode(); } diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathImpl.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathImpl.java index 592f29d0abbd1..eb72e7f0e84f3 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathImpl.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathImpl.java @@ -179,80 +179,60 @@ public Iterable reverseNodes() private Iterable nodeIterator( final Node start, final Iterable relationships ) { - return new Iterable() + return () -> new Iterator() { - public Iterator iterator() - { - return new Iterator() - { - Node current = start; - int index; - Iterator relationshipIterator = relationships.iterator(); + Node current = start; + int index; + Iterator relationshipIterator = relationships.iterator(); - public boolean hasNext() - { - return index <= path.length; - } + public boolean hasNext() + { + return index <= path.length; + } - public Node next() + public Node next() + { + if ( current == null ) + { + throw new NoSuchElementException(); + } + Node next = null; + if ( index < path.length ) + { + if ( !relationshipIterator.hasNext() ) { - if ( current == null ) - { - throw new NoSuchElementException(); - } - Node next = null; - if ( index < path.length ) - { - if ( !relationshipIterator.hasNext() ) - { - throw new IllegalStateException( String.format( "Number of relationships: %d does not" + - " match with path length: %d.", index, path.length ) ); - } - next = relationshipIterator.next().getOtherNode( current ); - } - index += 1; - try - { - return current; - } - finally - { - current = next; - } + throw new IllegalStateException( String.format( "Number of relationships: %d does not" + + " match with path length: %d.", index, path.length ) ); } + next = relationshipIterator.next().getOtherNode( current ); + } + index += 1; + try + { + return current; + } + finally + { + current = next; + } + } - public void remove() - { - throw new UnsupportedOperationException(); - } - }; + public void remove() + { + throw new UnsupportedOperationException(); } }; } public Iterable relationships() { - return new Iterable() - { - @Override - public Iterator iterator() - { - return new ArrayIterator<>( path ); - } - }; + return () -> new ArrayIterator<>( path ); } @Override public Iterable reverseRelationships() { - return new Iterable() - { - @Override - public Iterator iterator() - { - return new ReverseArrayIterator<>( path ); - } - }; + return () -> new ReverseArrayIterator<>( path ); } public Iterator iterator() diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathInterestFactory.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathInterestFactory.java index 94e5dc6ba8fc2..6e33c7140aed6 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathInterestFactory.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PathInterestFactory.java @@ -138,14 +138,7 @@ public static

PathInterest

numberOfShortest( final int return new VisitCountBasedPathInterest

() { - private Comparator

comparator = new Comparator

() - { - @Override - public int compare( P o1, P o2 ) - { - return o1.compareTo( o2 ); - } - }; + private Comparator

comparator = ( o1, o2 ) -> o1.compareTo( o2 ); @Override int numberOfWantedPaths() diff --git a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PriorityMap.java b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PriorityMap.java index 5537b59ef0788..7d4de08a1cf26 100644 --- a/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PriorityMap.java +++ b/community/graph-algo/src/main/java/org/neo4j/graphalgo/impl/util/PriorityMap.java @@ -59,14 +59,7 @@ public P getPriority() } @SuppressWarnings( "rawtypes" ) - private static final Converter SELF_KEY = new Converter() - { - @Override - public Object convert( Object source ) - { - return source; - } - }; + private static final Converter SELF_KEY = source -> source; @SuppressWarnings( "unchecked" ) public static PriorityMap withSelfKey( Comparator

priority ) diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/BetweennessCentralityTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/BetweennessCentralityTest.java index ee594bbafc414..e0f4957f89455 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/BetweennessCentralityTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/BetweennessCentralityTest.java @@ -44,14 +44,7 @@ public class BetweennessCentralityTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1, MyRelTypes.R2, MyRelTypes.R3 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ClosenessCentralityTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ClosenessCentralityTest.java index 114e2a63e6b01..38b2f2dee7111 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ClosenessCentralityTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ClosenessCentralityTest.java @@ -38,14 +38,7 @@ public class ClosenessCentralityTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EccentricityTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EccentricityTest.java index c52e22aad141f..aa88a5013a224 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EccentricityTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EccentricityTest.java @@ -37,15 +37,7 @@ public class EccentricityTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - @Override - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EigenvectorCentralityTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EigenvectorCentralityTest.java index c6f17829fe6b6..83953a467d4a4 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EigenvectorCentralityTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/EigenvectorCentralityTest.java @@ -43,14 +43,7 @@ public void shouldHandleTargetNodeBeingOrphan() { graph.makeNode( "o" ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( Direction.BOTH, - new CostEvaluator() - { - @Override - public Double getCost( Relationship relationship, Direction direction ) - { - return 1d; - } - }, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); + ( relationship, direction ) -> 1d, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); assertApproximateCentrality( eigenvectorCentrality, "o", 0d, 0.02 ); } @@ -86,14 +79,7 @@ public void shouldHandleFirstNodeBeingOrphan() relSet.add( graph.makeEdge( "c", "a" ) ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( Direction.OUTGOING, - new CostEvaluator() - { - @Override - public Double getCost( Relationship relationship, Direction direction ) - { - return 1d; - } - }, nodeSet, relSet, 0.01 ); + ( relationship, direction ) -> 1d, nodeSet, relSet, 0.01 ); assertApproximateCentrality( eigenvectorCentrality, "o", 0d, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0.481, 0.02 ); @@ -138,14 +124,7 @@ public void shouldHandleFirstNodeBeingOrphanInRelationshipSet() graph.makeEdge( "a", "o" ); // Edge not included in rel set EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( Direction.OUTGOING, - new CostEvaluator() - { - @Override - public Double getCost( Relationship relationship, Direction direction ) - { - return 1d; - } - }, nodeSet, relSet, 0.01 ); + ( relationship, direction ) -> 1d, nodeSet, relSet, 0.01 ); assertApproximateCentrality( eigenvectorCentrality, "o", 0d, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0.481, 0.02 ); @@ -168,14 +147,7 @@ public void simpleTest() graph.makeEdgeChain( "a,b,c,d" ); graph.makeEdges( "b,a,c,a" ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( - Direction.OUTGOING, new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, graph.getAllNodes(), graph.getAllEdges(), 0.02 ); + Direction.OUTGOING, ( relationship, direction ) -> 1.0, graph.getAllNodes(), graph.getAllEdges(), 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0.693, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "b", 0.523, 0.02 ); @@ -192,14 +164,7 @@ public void testDirection() graph.makeEdgeChain( "d,c,b,a" ); graph.makeEdges( "a,b,a,c" ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( - Direction.INCOMING, new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); + Direction.INCOMING, ( relationship, direction ) -> 1.0, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0.693, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "b", 0.523, 0.02 ); @@ -239,14 +204,7 @@ public void shouldHandleIsolatedCommunities() relSet.add( graph.makeEdge( "f", "e" ) ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( Direction.OUTGOING, - new CostEvaluator() - { - @Override - public Double getCost( Relationship relationship, Direction direction ) - { - return 1d; - } - }, nodeSet, relSet, 0.001 ); + ( relationship, direction ) -> 1d, nodeSet, relSet, 0.001 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0d, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "b", 0d, 0.02 ); @@ -304,10 +262,7 @@ public void testWeightAndDirection() costs.put( "c,b", 0.1 ); costs.put( "c,a", 0.1 ); EigenvectorCentrality eigenvectorCentrality = getEigenvectorCentrality( - Direction.BOTH, new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) + Direction.BOTH, ( relationship, direction ) -> { String start = graph .getNodeId( relationship.getStartNode() ); @@ -325,8 +280,7 @@ public Double getCost( Relationship relationship, return 0.0; } return value; - } - }, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); + }, graph.getAllNodes(), graph.getAllEdges(), 0.01 ); assertApproximateCentrality( eigenvectorCentrality, "a", 0.0851, 0.02 ); assertApproximateCentrality( eigenvectorCentrality, "b", 0.244, 0.02 ); diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkDiameterTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkDiameterTest.java index 08694df8c48ac..80984f079d32a 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkDiameterTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkDiameterTest.java @@ -37,14 +37,7 @@ public class NetworkDiameterTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkRadiusTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkRadiusTest.java index 1bcdb698e3621..914bc086aa03b 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkRadiusTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/NetworkRadiusTest.java @@ -37,14 +37,7 @@ public class NetworkRadiusTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ParallellCentralityCalculationTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ParallellCentralityCalculationTest.java index 8c2c255703fb1..5768d2d57ad4d 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ParallellCentralityCalculationTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/ParallellCentralityCalculationTest.java @@ -42,14 +42,7 @@ public class ParallellCentralityCalculationTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/StressCentralityTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/StressCentralityTest.java index 93df88617da7c..6f3a81b3fb0d1 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/StressCentralityTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/centrality/StressCentralityTest.java @@ -39,14 +39,7 @@ public class StressCentralityTest extends Neo4jAlgoTestCase protected SingleSourceShortestPath getSingleSourceShortestPath() { return new SingleSourceShortestPathDijkstra( 0.0, null, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + ( relationship, direction ) -> 1.0, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.BOTH, MyRelTypes.R1 ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/path/TestAStar.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/path/TestAStar.java index 66ccc8a81cfcd..8415599c4e4bf 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/path/TestAStar.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/path/TestAStar.java @@ -229,14 +229,7 @@ public PathExpander reverse() public void betterTentativePath() throws Exception { // GIVEN - EstimateEvaluator estimator = new EstimateEvaluator() - { - @Override - public Double getCost( Node node, Node goal ) - { - return (Double) node.getProperty( "estimate" ); - } - }; + EstimateEvaluator estimator = ( node, goal ) -> (Double) node.getProperty( "estimate" ); PathFinder finder = aStar( PathExpanders.allTypesAndDirections(), doubleCostEvaluator( "weight", 0d ), estimator ); @@ -259,18 +252,14 @@ public Double getCost( Node node, Node goal ) assertPath( best1_4, node1, node2, node3, node4 ); } - static EstimateEvaluator ESTIMATE_EVALUATOR = new EstimateEvaluator() + static EstimateEvaluator ESTIMATE_EVALUATOR = ( node, goal ) -> { - @Override - public Double getCost( Node node, Node goal ) - { - double dx = (Double) node.getProperty( "x" ) - - (Double) goal.getProperty( "x" ); - double dy = (Double) node.getProperty( "y" ) - - (Double) goal.getProperty( "y" ); - double result = Math.sqrt( Math.pow( dx, 2 ) + Math.pow( dy, 2 ) ); - return result; - } + double dx = (Double) node.getProperty( "x" ) + - (Double) goal.getProperty( "x" ); + double dy = (Double) node.getProperty( "y" ) + - (Double) goal.getProperty( "y" ); + double result = Math.sqrt( Math.pow( dx, 2 ) + Math.pow( dy, 2 ) ); + return result; }; @Parameters diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraDirectionTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraDirectionTest.java index 9a868c25dd3a7..1d7709cf9adf3 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraDirectionTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraDirectionTest.java @@ -47,28 +47,20 @@ public void testDijkstraDirection1() (double) 0, graph.getNode( "s" ), graph.getNode( "e" ), - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) + ( relationship, direction ) -> { assertEquals( Direction.OUTGOING, direction ); return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.OUTGOING, MyRelTypes.R1 ); dijkstra.getCost(); dijkstra = new Dijkstra( (double) 0, graph.getNode( "s" ), - graph.getNode( "e" ), new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - assertEquals( Direction.INCOMING, direction ); - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + graph.getNode( "e" ), ( relationship, direction ) -> + { + assertEquals( Direction.INCOMING, direction ); + return 1.0; + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.INCOMING, MyRelTypes.R1 ); dijkstra.getCost(); @@ -89,28 +81,20 @@ public void testDijkstraDirection2() (double) 0, graph.getNode( "s" ), graph.getNode( "e" ), - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) + ( relationship, direction ) -> { assertEquals( Direction.OUTGOING, direction ); return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.OUTGOING, MyRelTypes.R1 ); dijkstra.getCost(); dijkstra = new Dijkstra( (double) 0, graph.getNode( "s" ), - graph.getNode( "e" ), new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - assertEquals( Direction.INCOMING, direction ); - return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + graph.getNode( "e" ), ( relationship, direction ) -> + { + assertEquals( Direction.INCOMING, direction ); + return 1.0; + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), Direction.INCOMING, MyRelTypes.R1 ); dijkstra.getCost(); diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultiplePathsTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultiplePathsTest.java index 158b988b36ab5..b06ad7cf35d6c 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultiplePathsTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultiplePathsTest.java @@ -233,14 +233,7 @@ public void test7() 0.0, graph.getNode( "a" ), graph.getNode( "e" ), - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new DoubleAdder(), new DoubleComparator(), Direction.OUTGOING, + ( relationship, direction ) -> 1.0, new DoubleAdder(), new DoubleComparator(), Direction.OUTGOING, MyRelTypes.R1 ); // path discovery flags boolean pathBD = false; @@ -324,14 +317,7 @@ public void test8() 0.0, graph.getNode( "a" ), graph.getNode( "e" ), - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new DoubleAdder(), new DoubleComparator(), Direction.OUTGOING, + ( relationship, direction ) -> 1.0, new DoubleAdder(), new DoubleComparator(), Direction.OUTGOING, MyRelTypes.R1 ); // path discovery flags boolean pathBD = false; diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultipleRelationshipTypesTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultipleRelationshipTypesTest.java index cef76b4d21696..b3e65ef51ce45 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultipleRelationshipTypesTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/DijkstraMultipleRelationshipTypesTest.java @@ -38,14 +38,7 @@ protected Dijkstra getDijkstra( String startNode, String endNode, RelationshipType... relTypes ) { return new Dijkstra( 0.0, graph.getNode( startNode ), - graph.getNode( endNode ), new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) - { - return 1.0; - } - }, new DoubleAdder(), new DoubleComparator(), Direction.BOTH, + graph.getNode( endNode ), ( relationship, direction ) -> 1.0, new DoubleAdder(), new DoubleComparator(), Direction.BOTH, relTypes ); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/FloydWarshallTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/FloydWarshallTest.java index 1f0a62f346206..c84062ecf9849 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/FloydWarshallTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/FloydWarshallTest.java @@ -104,27 +104,19 @@ public void testDirection() graph.makeEdge( "e", "c" ); graph.makeEdge( "d", "e" ); new FloydWarshall( 0.0, Double.MAX_VALUE, Direction.OUTGOING, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) + ( relationship, direction ) -> { assertEquals( Direction.OUTGOING, direction ); return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), graph .getAllNodes(), graph.getAllEdges() ).calculate(); new FloydWarshall( 0.0, Double.MAX_VALUE, Direction.INCOMING, - new CostEvaluator() - { - public Double getCost( Relationship relationship, - Direction direction ) + ( relationship, direction ) -> { assertEquals( Direction.INCOMING, direction ); return 1.0; - } - }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), + }, new org.neo4j.graphalgo.impl.util.DoubleAdder(), new org.neo4j.graphalgo.impl.util.DoubleComparator(), graph .getAllNodes(), graph.getAllEdges() ).calculate(); } diff --git a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/SingleSourceShortestPathDijkstraTest.java b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/SingleSourceShortestPathDijkstraTest.java index fe14faa59a96c..6ceaeda43c6a7 100644 --- a/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/SingleSourceShortestPathDijkstraTest.java +++ b/community/graph-algo/src/test/java/org/neo4j/graphalgo/shortestpath/SingleSourceShortestPathDijkstraTest.java @@ -34,14 +34,7 @@ protected SingleSourceShortestPath getSingleSourceAlgorithm( Node startNode ) { return new SingleSourceShortestPathDijkstra( 0, startNode, - new CostEvaluator() - { - public Integer getCost( Relationship relationship, - Direction direction ) - { - return 1; - } - }, new org.neo4j.graphalgo.impl.util.IntegerAdder(), + ( relationship, direction ) -> 1, new org.neo4j.graphalgo.impl.util.IntegerAdder(), new org.neo4j.graphalgo.impl.util.IntegerComparator(), Direction.BOTH, MyRelTypes.R1 ); } @@ -50,14 +43,7 @@ protected SingleSourceShortestPath getSingleSourceAlgorithm( Node startNode, Direction direction, RelationshipType... relTypes ) { return new SingleSourceShortestPathDijkstra( 0, startNode, - new CostEvaluator() - { - public Integer getCost( Relationship relationship, - Direction direction ) - { - return 1; - } - }, new org.neo4j.graphalgo.impl.util.IntegerAdder(), + ( relationship, direction1 ) -> 1, new org.neo4j.graphalgo.impl.util.IntegerAdder(), new org.neo4j.graphalgo.impl.util.IntegerComparator(), direction, relTypes ); } diff --git a/community/graphdb-api/src/main/java/org/neo4j/graphdb/impl/ExtendedPath.java b/community/graphdb-api/src/main/java/org/neo4j/graphdb/impl/ExtendedPath.java index 562319203535a..013adb5b1188f 100644 --- a/community/graphdb-api/src/main/java/org/neo4j/graphdb/impl/ExtendedPath.java +++ b/community/graphdb-api/src/main/java/org/neo4j/graphdb/impl/ExtendedPath.java @@ -61,31 +61,24 @@ public Relationship lastRelationship() @Override public Iterable relationships() { - return new Iterable() + return () -> new PrefetchingIterator() { + final Iterator startRelationships = start.relationships().iterator(); + boolean lastReturned; + @Override - public Iterator iterator() + protected Relationship fetchNextOrNull() { - return new PrefetchingIterator() + if ( startRelationships.hasNext() ) + { + return startRelationships.next(); + } + if ( !lastReturned ) { - final Iterator startRelationships = start.relationships().iterator(); - boolean lastReturned; - - @Override - protected Relationship fetchNextOrNull() - { - if ( startRelationships.hasNext() ) - { - return startRelationships.next(); - } - if ( !lastReturned ) - { - lastReturned = true; - return lastRelationship; - } - return null; - } - }; + lastReturned = true; + return lastRelationship; + } + return null; } }; } @@ -93,27 +86,20 @@ protected Relationship fetchNextOrNull() @Override public Iterable reverseRelationships() { - return new Iterable() + return () -> new PrefetchingIterator() { + final Iterator startRelationships = start.reverseRelationships().iterator(); + boolean endReturned; + @Override - public Iterator iterator() + protected Relationship fetchNextOrNull() { - return new PrefetchingIterator() + if ( !endReturned ) { - final Iterator startRelationships = start.reverseRelationships().iterator(); - boolean endReturned; - - @Override - protected Relationship fetchNextOrNull() - { - if ( !endReturned ) - { - endReturned = true; - return lastRelationship; - } - return startRelationships.hasNext() ? startRelationships.next() : null; - } - }; + endReturned = true; + return lastRelationship; + } + return startRelationships.hasNext() ? startRelationships.next() : null; } }; } @@ -121,31 +107,24 @@ protected Relationship fetchNextOrNull() @Override public Iterable nodes() { - return new Iterable() + return () -> new PrefetchingIterator() { + final Iterator startNodes = start.nodes().iterator(); + boolean lastReturned; + @Override - public Iterator iterator() + protected Node fetchNextOrNull() { - return new PrefetchingIterator() + if ( startNodes.hasNext() ) + { + return startNodes.next(); + } + if ( !lastReturned ) { - final Iterator startNodes = start.nodes().iterator(); - boolean lastReturned; - - @Override - protected Node fetchNextOrNull() - { - if ( startNodes.hasNext() ) - { - return startNodes.next(); - } - if ( !lastReturned ) - { - lastReturned = true; - return endNode; - } - return null; - } - }; + lastReturned = true; + return endNode; + } + return null; } }; } @@ -153,27 +132,20 @@ protected Node fetchNextOrNull() @Override public Iterable reverseNodes() { - return new Iterable() + return () -> new PrefetchingIterator() { + final Iterator startNodes = start.reverseNodes().iterator(); + boolean endReturned; + @Override - public Iterator iterator() + protected Node fetchNextOrNull() { - return new PrefetchingIterator() + if ( !endReturned ) { - final Iterator startNodes = start.reverseNodes().iterator(); - boolean endReturned; - - @Override - protected Node fetchNextOrNull() - { - if ( !endReturned ) - { - endReturned = true; - return endNode; - } - return startNodes.hasNext() ? startNodes.next() : null; - } - }; + endReturned = true; + return endNode; + } + return startNodes.hasNext() ? startNodes.next() : null; } }; } diff --git a/community/io/src/main/java/org/neo4j/io/fs/FileUtils.java b/community/io/src/main/java/org/neo4j/io/fs/FileUtils.java index 659fd58f16e37..a99d25f152018 100644 --- a/community/io/src/main/java/org/neo4j/io/fs/FileUtils.java +++ b/community/io/src/main/java/org/neo4j/io/fs/FileUtils.java @@ -426,14 +426,7 @@ public interface LineListener public static LineListener echo( final PrintStream target ) { - return new LineListener() - { - @Override - public void line( String line ) - { - target.println( line ); - } - }; + return line -> target.println( line ); } public static void readTextFile( File file, LineListener listener ) throws IOException diff --git a/community/io/src/test/java/org/neo4j/adversaries/AdversarySignals.java b/community/io/src/test/java/org/neo4j/adversaries/AdversarySignals.java index 283e401198b84..35491818698aa 100644 --- a/community/io/src/test/java/org/neo4j/adversaries/AdversarySignals.java +++ b/community/io/src/test/java/org/neo4j/adversaries/AdversarySignals.java @@ -47,14 +47,7 @@ public synchronized void installAsSIGUSR2() { if ( !installed ) { - Signal.handle( new Signal( "USR2" ), new SignalHandler() - { - @Override - public void handle( Signal sig ) - { - handleSignal(); - } - } ); + Signal.handle( new Signal( "USR2" ), sig -> handleSignal() ); installed = true; } } @@ -71,27 +64,13 @@ public synchronized void setFactorWhenSignalled( final RandomAdversary adversary, final double factor ) { - installedHandlers.add( new Runnable() - { - @Override - public void run() - { - adversary.setProbabilityFactor( factor ); - } - } ); + installedHandlers.add( () -> adversary.setProbabilityFactor( factor ) ); } public synchronized void setAndResetFactorWhenSignalled( final RandomAdversary adversary, final double factor ) { - installedHandlers.add( new Runnable() - { - @Override - public void run() - { - adversary.setAndResetProbabilityFactor( factor ); - } - } ); + installedHandlers.add( () -> adversary.setAndResetProbabilityFactor( factor ) ); } } diff --git a/community/io/src/test/java/org/neo4j/adversaries/fs/AdversarialFileSystemAbstraction.java b/community/io/src/test/java/org/neo4j/adversaries/fs/AdversarialFileSystemAbstraction.java index d20fc99371b88..0238c550007bc 100644 --- a/community/io/src/test/java/org/neo4j/adversaries/fs/AdversarialFileSystemAbstraction.java +++ b/community/io/src/test/java/org/neo4j/adversaries/fs/AdversarialFileSystemAbstraction.java @@ -243,14 +243,10 @@ private ThirdPartyFileSystem adversarialProxy( final ThirdPartyFileSystem fileSystem, Class clazz ) { - InvocationHandler handler = new InvocationHandler() + InvocationHandler handler = ( proxy, method, args ) -> { - @Override - public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable - { - adversary.injectFailure( (Class[]) method.getExceptionTypes() ); - return method.invoke( fileSystem, args ); - } + adversary.injectFailure( (Class[]) method.getExceptionTypes() ); + return method.invoke( fileSystem, args ); }; ClassLoader loader = Thread.currentThread().getContextClassLoader(); return (ThirdPartyFileSystem) Proxy.newProxyInstance( loader, new Class[] { clazz }, handler ); diff --git a/community/kernel/src/main/java/org/neo4j/helpers/Service.java b/community/kernel/src/main/java/org/neo4j/helpers/Service.java index 5ddedcf53f15d..9f6f8aeaee213 100644 --- a/community/kernel/src/main/java/org/neo4j/helpers/Service.java +++ b/community/kernel/src/main/java/org/neo4j/helpers/Service.java @@ -264,35 +264,28 @@ public int hashCode() private static Iterable filterExceptions( final Iterable iterable ) { - return new Iterable() + return () -> new PrefetchingIterator() { + final Iterator iterator = iterable.iterator(); + @Override - public Iterator iterator() + protected T fetchNextOrNull() { - return new PrefetchingIterator() + while ( iterator.hasNext() ) { - final Iterator iterator = iterable.iterator(); - - @Override - protected T fetchNextOrNull() + try + { + return iterator.next(); + } + catch ( Throwable e ) { - while ( iterator.hasNext() ) + if ( printServiceLoaderStackTraces ) { - try - { - return iterator.next(); - } - catch ( Throwable e ) - { - if ( printServiceLoaderStackTraces ) - { - e.printStackTrace(); - } - } + e.printStackTrace(); } - return null; } - }; + } + return null; } }; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/labelscan/NodeLabelUpdate.java b/community/kernel/src/main/java/org/neo4j/kernel/api/labelscan/NodeLabelUpdate.java index 14d2a7ae4e423..5a6111facb58f 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/labelscan/NodeLabelUpdate.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/labelscan/NodeLabelUpdate.java @@ -24,14 +24,8 @@ public class NodeLabelUpdate { - public static final Comparator SORT_BY_NODE_ID = new Comparator() - { - @Override - public int compare( NodeLabelUpdate o1, NodeLabelUpdate o2 ) - { - return Long.compare( o1.getNodeId(), o2.getNodeId() ); - } - }; + public static final Comparator SORT_BY_NODE_ID = + (Comparator) ( o1, o2 ) -> Long.compare( o1.getNodeId(), o2.getNodeId() ); private final long nodeId; private final long[] labelsBefore; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/properties/DefinedProperty.java b/community/kernel/src/main/java/org/neo4j/kernel/api/properties/DefinedProperty.java index 73ae4e6b7dc38..7d89833a9154f 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/properties/DefinedProperty.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/properties/DefinedProperty.java @@ -75,20 +75,16 @@ public boolean valueEquals( Object other ) } }; - public static final Comparator COMPARATOR = new Comparator() + public static final Comparator COMPARATOR = ( left, right ) -> { - @Override - public int compare( DefinedProperty left, DefinedProperty right ) + int cmp = left.propertyKeyId - right.propertyKeyId; + if ( cmp == 0 ) { - int cmp = left.propertyKeyId - right.propertyKeyId; - if ( cmp == 0 ) - { - return COMPARE_VALUES.compare( left.value(), right.value() ); - } - - // else - return cmp; + return COMPARE_VALUES.compare( left.value(), right.value() ); } + + // else + return cmp; }; @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java index 1e5ff5ae0157e..3ae7ce828ac63 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java @@ -229,14 +229,7 @@ private static class RelationshipImpl implements Relationship this.id = MIN_ID.getAndDecrement(); this.startNode = startNode; this.endNode = endNode; - relationshipType = new RelationshipType() - { - @Override - public String name() - { - return type; - } - }; + relationshipType = () -> type; } @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java index 5ca477bd01702..f4bb2309f0311 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java @@ -51,14 +51,7 @@ public interface Monitor private long startTimeNanos; - private final LogRotateEvent logRotateEvent = new LogRotateEvent() - { - @Override - public void close() - { - updateCountersAndNotifyListeners(); - } - }; + private final LogRotateEvent logRotateEvent = () -> updateCountersAndNotifyListeners(); private final LogAppendEvent logAppendEvent = new LogAppendEvent() { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/PropertyValueComparison.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/PropertyValueComparison.java index 33afa69dc3f04..daae519d5a4cc 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/PropertyValueComparison.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/PropertyValueComparison.java @@ -107,14 +107,7 @@ else if ( value instanceof Character ) return OTHER; } - public static Comparator TYPE_ID_COMPARATOR = new Comparator() - { - @Override - public int compare( SuperType left, SuperType right ) - { - return left.typeId - right.typeId; - } - }; + public static Comparator TYPE_ID_COMPARATOR = ( left, right ) -> left.typeId - right.typeId; } public static final class Limit diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java index 720b4440461a2..417713230e8c3 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java @@ -1584,16 +1584,9 @@ public void relationshipAddToLegacyIndex( final KernelStatement statement, final final long relationship, final String key, final Object value ) throws EntityNotFoundException, LegacyIndexNotFoundKernelException { - relationshipVisit( statement, relationship, new RelationshipVisitor() - { - @Override - public void visit( long relId, int type, long startNode, long endNode ) - throws LegacyIndexNotFoundKernelException - { - statement.legacyIndexTxState().relationshipChanges( indexName ).addRelationship( - relationship, key, value, startNode, endNode ); - } - } ); + relationshipVisit( statement, relationship, + ( relId, type, startNode, endNode ) -> statement.legacyIndexTxState().relationshipChanges( indexName ).addRelationship( + relationship, key, value, startNode, endNode ) ); } @Override @@ -1605,16 +1598,9 @@ public void relationshipRemoveFromLegacyIndex( final KernelStatement statement, { try { - relationshipVisit( statement, relationship, new RelationshipVisitor() - { - @Override - public void visit( long relId, int type, long startNode, long endNode ) - throws LegacyIndexNotFoundKernelException - { + relationshipVisit( statement, relationship, ( relId, type, startNode, endNode ) -> statement.legacyIndexTxState().relationshipChanges( indexName ).removeRelationship( - relId, key, value, startNode, endNode ); - } - } ); + relId, key, value, startNode, endNode ) ); } catch ( EntityNotFoundException e ) { // Apparently this is OK @@ -1629,16 +1615,9 @@ public void relationshipRemoveFromLegacyIndex( final KernelStatement statement, { try { - relationshipVisit( statement, relationship, new RelationshipVisitor() - { - @Override - public void visit( long relId, int type, long startNode, long endNode ) - throws LegacyIndexNotFoundKernelException - { + relationshipVisit( statement, relationship, ( relId, type, startNode, endNode ) -> statement.legacyIndexTxState().relationshipChanges( indexName ).removeRelationship( - relId, key, startNode, endNode ); - } - } ); + relId, key, startNode, endNode ) ); } catch ( EntityNotFoundException e ) { // Apparently this is OK @@ -1653,16 +1632,9 @@ public void relationshipRemoveFromLegacyIndex( final KernelStatement statement, { try { - relationshipVisit( statement, relationship, new RelationshipVisitor() - { - @Override - public void visit( long relId, int type, long startNode, long endNode ) - throws LegacyIndexNotFoundKernelException - { + relationshipVisit( statement, relationship, ( relId, type, startNode, endNode ) -> statement.legacyIndexTxState().relationshipChanges( indexName ).removeRelationship( - relId, startNode, endNode ); - } - } ); + relId, startNode, endNode ) ); } catch ( EntityNotFoundException e ) { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingJobTracker.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingJobTracker.java index 5b23bdc70d857..ea676e731a93e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingJobTracker.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingJobTracker.java @@ -76,19 +76,15 @@ public void scheduleSamplingJob( final IndexSamplingJob samplingJob ) } executingJobs.add( indexId ); - jobScheduler.schedule( JobScheduler.Groups.indexSampling, new Runnable() + jobScheduler.schedule( JobScheduler.Groups.indexSampling, () -> { - @Override - public void run() + try { - try - { - samplingJob.run(); - } - finally - { - samplingJobCompleted( samplingJob ); - } + samplingJob.run(); + } + finally + { + samplingJobCompleted( samplingJob ); } } ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DatabasePanicEventGenerator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DatabasePanicEventGenerator.java index 2727407596a9c..3ad86d36d745e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DatabasePanicEventGenerator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DatabasePanicEventGenerator.java @@ -37,14 +37,7 @@ public DatabasePanicEventGenerator( KernelEventHandlers kernelEventHandlers ) public void generateEvent( final ErrorState error, final Throwable cause ) { ExecutorService executor = Executors.newSingleThreadExecutor( ); - executor.execute( new Runnable() - { - @Override - public void run() - { - kernelEventHandlers.kernelPanic( error, cause ); - } - } ); + executor.execute( () -> kernelEventHandlers.kernelPanic( error, cause ) ); executor.shutdown(); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java index 05bfcaa6e99b3..ac4ac4e479586 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java @@ -450,14 +450,10 @@ public void makeStoreOk() */ public void verifyStoreOk() { - visitStore( new Visitor() + visitStore( store -> { - @Override - public boolean visit( CommonAbstractStore store ) - { - store.checkStoreOk(); - return false; - } + store.checkStoreOk(); + return false; } ); } @@ -505,14 +501,10 @@ public void rebuildCountStoreIfNeeded() throws IOException public void deleteIdGenerators() { - visitStore( new Visitor() + visitStore( store -> { - @Override - public boolean visit( CommonAbstractStore store ) throws RuntimeException - { - store.deleteIdGenerator(); - return false; - } + store.deleteIdGenerator(); + return false; } ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java index 434c47e7927c9..6406e8e8177d5 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStore.java @@ -226,14 +226,7 @@ protected final PreparedRotation prepareRotation( final long version ) ProgressiveState prior = state; if ( prior.storedVersion() == version && !prior.hasChanges() ) { - return new PreparedRotation() - { - @Override - public long rotate() throws IOException - { - return version; - } - }; + return () -> version; } return new RotationTask( version ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/DeadState.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/DeadState.java index 39e3929a64a72..480d933f0f4ac 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/DeadState.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/kvstore/DeadState.java @@ -179,12 +179,8 @@ private Pair initialState( DataInitializer creation = stateFactory.open( ReadableState.empty( keyFormat(), version ), null ); try { - try ( EntryUpdater updater = creation.resetter( new ReentrantLock(), new Runnable() + try ( EntryUpdater updater = creation.resetter( new ReentrantLock(), () -> { - @Override - public void run() - { - } } ) ) { initializer.initialize( updater ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java index 7901050909773..e5cc27bc6f1b9 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/StoreUpgrader.java @@ -166,14 +166,8 @@ private boolean isUpgradeAllowed() private void cleanupLegacyLeftOverDirsIn( File storeDir ) { final Pattern leftOverDirsPattern = Pattern.compile( MIGRATION_LEFT_OVERS_DIRECTORY + "(_\\d*)?" ); - File[] leftOverDirs = storeDir.listFiles( new FilenameFilter() - { - @Override - public boolean accept( File file, String name ) - { - return file.isDirectory() && leftOverDirsPattern.matcher( name ).matches(); - } - } ); + File[] leftOverDirs = storeDir.listFiles( + ( file, name ) -> file.isDirectory() && leftOverDirsPattern.matcher( name ).matches() ); if ( leftOverDirs != null ) { for ( File leftOverDir : leftOverDirs ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/legacystore/v21/propertydeduplication/PropertyDeduplicator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/legacystore/v21/propertydeduplication/PropertyDeduplicator.java index 453849f345731..5c325426d356a 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/legacystore/v21/propertydeduplication/PropertyDeduplicator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storemigration/legacystore/v21/propertydeduplication/PropertyDeduplicator.java @@ -110,20 +110,16 @@ private PrimitiveLongObjectMap> collectConflictingPropert } final long localHeadRecordId = headRecordId; - localDuplicateClusters.visitEntries( new PrimitiveIntObjectVisitor() + localDuplicateClusters.visitEntries( ( key, duplicateCluster ) -> { - @Override - public boolean visited( int key, DuplicateCluster duplicateCluster ) + List clusters = duplicateClusters.get( localHeadRecordId ); + if ( clusters == null ) { - List clusters = duplicateClusters.get( localHeadRecordId ); - if ( clusters == null ) - { - clusters = new ArrayList<>(); - duplicateClusters.put( localHeadRecordId, clusters ); - } - clusters.add( duplicateCluster ); - return false; + clusters = new ArrayList<>(); + duplicateClusters.put( localHeadRecordId, clusters ); } + clusters.add( duplicateCluster ); + return false; } ); seenPropertyKeys.clear(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/CheckPointTracer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/CheckPointTracer.java index 61c72167a3e49..f92a42d7fe911 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/CheckPointTracer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/CheckPointTracer.java @@ -21,14 +21,7 @@ public interface CheckPointTracer { - CheckPointTracer NULL = new CheckPointTracer() - { - @Override - public LogCheckPointEvent beginCheckPoint() - { - return LogCheckPointEvent.NULL; - } - }; + CheckPointTracer NULL = () -> LogCheckPointEvent.NULL; /** * Begin a check point write to the log diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceEvent.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceEvent.java index 4cb5d5e1e3177..7740dd5e790cb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceEvent.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceEvent.java @@ -26,12 +26,8 @@ */ public interface LogForceEvent extends AutoCloseable { - LogForceEvent NULL = new LogForceEvent() + LogForceEvent NULL = () -> { - @Override - public void close() - { - } }; /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceWaitEvent.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceWaitEvent.java index 0ea8040aaf3db..07a2a122f6a2e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceWaitEvent.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogForceWaitEvent.java @@ -26,12 +26,8 @@ */ public interface LogForceWaitEvent extends AutoCloseable { - LogForceWaitEvent NULL = new LogForceWaitEvent() + LogForceWaitEvent NULL = () -> { - @Override - public void close() - { - } }; /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogRotateEvent.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogRotateEvent.java index c8b5e19e50866..4e951de9fb6bb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogRotateEvent.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/LogRotateEvent.java @@ -24,12 +24,8 @@ */ public interface LogRotateEvent extends AutoCloseable { - LogRotateEvent NULL = new LogRotateEvent() + LogRotateEvent NULL = () -> { - @Override - public void close() - { - } }; /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/SerializeTransactionEvent.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/SerializeTransactionEvent.java index b9d9e4e5392d1..20a8426e0d3e5 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/SerializeTransactionEvent.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/SerializeTransactionEvent.java @@ -24,12 +24,8 @@ */ public interface SerializeTransactionEvent extends AutoCloseable { - SerializeTransactionEvent NULL = new SerializeTransactionEvent() + SerializeTransactionEvent NULL = () -> { - @Override - public void close() - { - } }; /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/StoreApplyEvent.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/StoreApplyEvent.java index e2fa3bee01d0c..10e842e363981 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/StoreApplyEvent.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/StoreApplyEvent.java @@ -25,12 +25,8 @@ */ public interface StoreApplyEvent extends AutoCloseable { - StoreApplyEvent NULL = new StoreApplyEvent() + StoreApplyEvent NULL = () -> { - @Override - public void close() - { - } }; /** diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/TransactionTracer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/TransactionTracer.java index b1ca24b62d64b..66d2892d89b94 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/TransactionTracer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/tracing/TransactionTracer.java @@ -31,14 +31,7 @@ public interface TransactionTracer * A TransactionTracer implementation that does nothing, other than return the NULL variants of the companion * interfaces. */ - TransactionTracer NULL = new TransactionTracer() - { - @Override - public TransactionEvent beginTransaction() - { - return TransactionEvent.NULL; - } - }; + TransactionTracer NULL = () -> TransactionEvent.NULL; /** * A transaction starts. diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraversalBranchImpl.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraversalBranchImpl.java index 3d7f7df672a3e..fbf9d31e27abb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraversalBranchImpl.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraversalBranchImpl.java @@ -257,28 +257,21 @@ public Iterable relationships() @Override public Iterable reverseRelationships() { - return new Iterable() + return () -> new PrefetchingIterator() { + private TraversalBranch branch = TraversalBranchImpl.this; + @Override - public Iterator iterator() + protected Relationship fetchNextOrNull() { - return new PrefetchingIterator() + try + { + return branch != null ? branch.lastRelationship() : null; + } + finally { - private TraversalBranch branch = TraversalBranchImpl.this; - - @Override - protected Relationship fetchNextOrNull() - { - try - { - return branch != null ? branch.lastRelationship() : null; - } - finally - { - branch = branch != null ? branch.parent() : null; - } - } - }; + branch = branch != null ? branch.parent() : null; + } } }; } @@ -300,28 +293,21 @@ public Iterable nodes() @Override public Iterable reverseNodes() { - return new Iterable() + return () -> new PrefetchingIterator() { + private TraversalBranch branch = TraversalBranchImpl.this; + @Override - public Iterator iterator() + protected Node fetchNextOrNull() { - return new PrefetchingIterator() + try + { + return branch.length() >= 0 ? branch.endNode() : null; + } + finally { - private TraversalBranch branch = TraversalBranchImpl.this; - - @Override - protected Node fetchNextOrNull() - { - try - { - return branch.length() >= 0 ? branch.endNode() : null; - } - finally - { - branch = branch.parent(); - } - } - }; + branch = branch.parent(); + } } }; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java index 887ea3305aeba..86a696a9cf25e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java @@ -48,14 +48,7 @@ public class GraphDbStructureGuide implements Visitable { - private static RelationshipType WILDCARD_REL_TYPE = new RelationshipType() - { - @Override - public String name() - { - return ""; - } - }; + private static RelationshipType WILDCARD_REL_TYPE = () -> ""; private final GraphDatabaseService db; private final ThreadToStatementContextBridge bridge; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/info/SystemDiagnostics.java b/community/kernel/src/main/java/org/neo4j/kernel/info/SystemDiagnostics.java index 66eb6ccf9336a..25d33f650fab1 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/info/SystemDiagnostics.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/info/SystemDiagnostics.java @@ -250,14 +250,7 @@ boolean isApplicable() @Override void dump( Logger logger ) { - for ( File subdir : SYS_BLOCK.listFiles( new java.io.FileFilter() - { - @Override - public boolean accept( File path ) - { - return path.isDirectory(); - } - } ) ) + for ( File subdir : SYS_BLOCK.listFiles( path -> path.isDirectory() ) ) { File scheduler = new File( subdir, "queue/scheduler" ); if ( scheduler.isFile() ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/internal/KernelDiagnostics.java b/community/kernel/src/main/java/org/neo4j/kernel/internal/KernelDiagnostics.java index 04a848805e133..8edb19e7dda7e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/internal/KernelDiagnostics.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/internal/KernelDiagnostics.java @@ -99,14 +99,7 @@ private long logStoreFiles( Logger logger, String prefix, File dir, MappedFileCo // Sort by name List fileList = Arrays.asList( files ); - Collections.sort( fileList, new Comparator() - { - @Override - public int compare( File o1, File o2 ) - { - return o1.getName().compareTo( o2.getName() ); - } - } ); + Collections.sort( fileList, ( o1, o2 ) -> o1.getName().compareTo( o2.getName() ) ); for ( File file : fileList ) { diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/DirectRecordAccess.java b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/DirectRecordAccess.java index f96c5706e5078..6dad8cff9197a 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/DirectRecordAccess.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/DirectRecordAccess.java @@ -229,14 +229,7 @@ public void commit() } List directRecordProxies = new ArrayList<>( batch.values() ); - Collections.sort(directRecordProxies, new Comparator() - { - @Override - public int compare( DirectRecordProxy o1, DirectRecordProxy o2 ) - { - return -o1.getKey().compareTo( o2.getKey() ); - } - } ); + Collections.sort(directRecordProxies, ( o1, o2 ) -> -o1.getKey().compareTo( o2.getKey() ) ); for ( DirectRecordProxy proxy : directRecordProxies ) { proxy.store(); diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java index ffc477fe2218d..fa34e9e8ddd12 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java @@ -1022,17 +1022,13 @@ public String toString() private Map getPropertyChain( long nextProp ) { final Map map = new HashMap<>(); - propertyTraverser.getPropertyChain( nextProp, recordAccess.getPropertyRecords(), new Listener() + propertyTraverser.getPropertyChain( nextProp, recordAccess.getPropertyRecords(), propBlock -> { - @Override - public void receive( PropertyBlock propBlock ) - { - String key = propertyKeyTokens.byId( propBlock.getKeyIndexId() ).name(); - DefinedProperty propertyData = propBlock.newPropertyData( propertyStore ); - Object value = propertyData.value() != null ? propertyData.value() : - propBlock.getType().getValue( propBlock, propertyStore ); - map.put( key, value ); - } + String key = propertyKeyTokens.byId( propBlock.getKeyIndexId() ).name(); + DefinedProperty propertyData = propBlock.newPropertyData( propertyStore ); + Object value = propertyData.value() != null ? propertyData.value() : + propBlock.getType().getValue( propBlock, propertyStore ); + map.put( key, value ); } ); return map; } diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapper.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapper.java index df167ddc1b735..ebf7c9ef29bad 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapper.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapper.java @@ -97,12 +97,8 @@ public interface Monitor void numberOfCollisions( int count ); } - public static final Monitor NO_MONITOR = new Monitor() - { - @Override - public void numberOfCollisions( int count ) - { // Do nothing. - } + public static final Monitor NO_MONITOR = count -> + { // Do nothing. }; // Bit in encoded String --> long values that marks that the particular item has a collision, diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/Radix.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/Radix.java index c0080f8714574..fc278fd88f7a8 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/Radix.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/Radix.java @@ -31,23 +31,9 @@ */ public abstract class Radix { - public static final Factory LONG = new Factory() - { - @Override - public Radix newInstance() - { - return new Radix.Long(); - } - }; + public static final Factory LONG = () -> new Long(); - public static final Factory STRING = new Factory() - { - @Override - public Radix newInstance() - { - return new Radix.String(); - } - }; + public static final Factory STRING = () -> new String(); protected final int[] radixIndexCount = new int[(int) pow( 2, RadixCalculator.RADIX_BITS - 1 )]; diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/input/InputCache.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/input/InputCache.java index 5ff283e80a96f..70464717e73f0 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/input/InputCache.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/input/InputCache.java @@ -179,31 +179,17 @@ private File file( String type, String subType ) public InputIterable nodes( String subType, boolean deleteAfterUse ) { - return entities( new ThrowingSupplier, IOException>() - { - @Override - public InputIterator get() throws IOException - { - return new InputNodeReader( channel( NODES, subType, "r" ), channel( NODES_HEADER, subType, "r" ), - bufferSize, deleteAction( deleteAfterUse, NODES, NODES_HEADER, subType ), - config.maxNumberOfProcessors() ); - } - } ); + return entities( () -> new InputNodeReader( channel( NODES, subType, "r" ), channel( NODES_HEADER, subType, "r" ), + bufferSize, deleteAction( deleteAfterUse, NODES, NODES_HEADER, subType ), + config.maxNumberOfProcessors() ) ); } public InputIterable relationships( String subType, boolean deleteAfterUse ) { - return entities( new ThrowingSupplier, IOException>() - { - @Override - public InputIterator get() throws IOException - { - return new InputRelationshipReader( channel( RELATIONSHIPS, subType, "r" ), - channel( RELATIONSHIPS_HEADER, subType, "r" ), bufferSize, - deleteAction( deleteAfterUse, RELATIONSHIPS, RELATIONSHIPS_HEADER, subType ), - config.maxNumberOfProcessors() ); - } - } ); + return entities( () -> new InputRelationshipReader( channel( RELATIONSHIPS, subType, "r" ), + channel( RELATIONSHIPS_HEADER, subType, "r" ), bufferSize, + deleteAction( deleteAfterUse, RELATIONSHIPS, RELATIONSHIPS_HEADER, subType ), + config.maxNumberOfProcessors() ) ); } protected Runnable deleteAction( boolean deleteAfterUse, String type, String header, String subType ) diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/StageExecution.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/StageExecution.java index 8e64cff2efce9..67733d72d38c4 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/StageExecution.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/StageExecution.java @@ -107,50 +107,39 @@ public Iterable> steps() public Iterable,Float>> stepsOrderedBy( final Key stat, final boolean trueForAscending ) { final List> steps = new ArrayList<>( pipeline ); - Collections.sort( steps, new Comparator>() + Collections.sort( steps, ( o1, o2 ) -> { - @Override - public int compare( Step o1, Step o2 ) - { - Long stat1 = o1.stats().stat( stat ).asLong(); - Long stat2 = o2.stats().stat( stat ).asLong(); - return trueForAscending - ? stat1.compareTo( stat2 ) - : stat2.compareTo( stat1 ); - } + Long stat1 = o1.stats().stat( stat ).asLong(); + Long stat2 = o2.stats().stat( stat ).asLong(); + return trueForAscending + ? stat1.compareTo( stat2 ) + : stat2.compareTo( stat1 ); } ); - return new Iterable,Float>>() + return () -> new PrefetchingIterator,Float>>() { + private final Iterator> source = steps.iterator(); + private Step next = source.hasNext() ? source.next() : null; + @Override - public Iterator,Float>> iterator() + protected Pair,Float> fetchNextOrNull() { - return new PrefetchingIterator,Float>>() + if ( next == null ) { - private final Iterator> source = steps.iterator(); - private Step next = source.hasNext() ? source.next() : null; - - @Override - protected Pair,Float> fetchNextOrNull() - { - if ( next == null ) - { - return null; - } - - Step current = next; - next = source.hasNext() ? source.next() : null; - float factor = next != null - ? (float) stat( current, stat ) / (float) stat( next, stat ) - : 1.0f; - return Pair.of( current, factor ); - } - - private long stat( Step step, Key stat ) - { - return step.stats().stat( stat ).asLong(); - } - }; + return null; + } + + Step current = next; + next = source.hasNext() ? source.next() : null; + float factor = next != null + ? (float) stat( current, stat ) / (float) stat( next, stat ) + : 1.0f; + return Pair.of( current, factor ); + } + + private long stat( Step step, Key stat12 ) + { + return step.stats().stat( stat12 ).asLong(); } }; } diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessing.java b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessing.java index 5cc3620dda264..803decf0210cc 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessing.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessing.java @@ -70,14 +70,7 @@ public class TicketedProcessing implements Parallelizable, AutoCl private final ArrayBlockingQueue processed; private final AtomicLong submittedTicket = new AtomicLong( -1 ); private final AtomicLong processedTicket = new AtomicLong( -1 ); - private final LongPredicate myTurnToAddToProcessedQueue = new LongPredicate() - { - @Override - public boolean test( long ticket ) - { - return processedTicket.get() == ticket - 1; - } - }; + private final LongPredicate myTurnToAddToProcessedQueue = ticket -> processedTicket.get() == ticket - 1; private final Runnable healthCheck; private volatile boolean done; diff --git a/community/kernel/src/test/java/org/neo4j/graphdb/ConsistentPropertyReadsIT.java b/community/kernel/src/test/java/org/neo4j/graphdb/ConsistentPropertyReadsIT.java index 2c27d090ad419..839193c39cea6 100644 --- a/community/kernel/src/test/java/org/neo4j/graphdb/ConsistentPropertyReadsIT.java +++ b/community/kernel/src/test/java/org/neo4j/graphdb/ConsistentPropertyReadsIT.java @@ -72,55 +72,47 @@ public void shouldReadConsistentPropertyValues() throws Throwable for ( int i = 0; i < updaters; i++ ) { // Changers - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + try { - try + ThreadLocalRandom random = ThreadLocalRandom.current(); + for ( int j = 0; j < 100; j++ ) { - ThreadLocalRandom random = ThreadLocalRandom.current(); - for ( int j = 0; j < 100; j++ ) + Node node = nodes[random.nextInt( nodes.length )]; + String key = keys[random.nextInt( keys.length )]; + try ( Transaction tx = db.beginTx() ) { - Node node = nodes[random.nextInt( nodes.length )]; - String key = keys[random.nextInt( keys.length )]; - try ( Transaction tx = db.beginTx() ) - { - node.removeProperty( key ); - tx.success(); - } - try ( Transaction tx = db.beginTx() ) - { - node.setProperty( key, values[random.nextInt( values.length )] ); - tx.success(); - } + node.removeProperty( key ); + tx.success(); + } + try ( Transaction tx = db.beginTx() ) + { + node.setProperty( key, values[random.nextInt( values.length )] ); + tx.success(); } } - finally - { - updatersDone.decrementAndGet(); - } + } + finally + { + updatersDone.decrementAndGet(); } } ); } for ( int i = 0; i < 100; i++ ) { // Readers - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + ThreadLocalRandom random = ThreadLocalRandom.current(); + while ( updatersDone.get() > 0 ) { - ThreadLocalRandom random = ThreadLocalRandom.current(); - while ( updatersDone.get() > 0 ) + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) - { - String value = (String) nodes[random.nextInt( nodes.length )] - .getProperty( keys[random.nextInt( keys.length )], null ); - assertTrue( value, value == null || ArrayUtil.contains( values, value ) ); - tx.success(); - } + String value = (String) nodes[random.nextInt( nodes.length )] + .getProperty( keys[random.nextInt( keys.length )], null ); + assertTrue( value, value == null || ArrayUtil.contains( values, value ) ); + tx.success(); } } } ); diff --git a/community/kernel/src/test/java/org/neo4j/graphdb/GraphDatabaseShutdownTest.java b/community/kernel/src/test/java/org/neo4j/graphdb/GraphDatabaseShutdownTest.java index 4fa55f085ed23..aca3976a1606c 100644 --- a/community/kernel/src/test/java/org/neo4j/graphdb/GraphDatabaseShutdownTest.java +++ b/community/kernel/src/test/java/org/neo4j/graphdb/GraphDatabaseShutdownTest.java @@ -92,37 +92,29 @@ public void shouldBeAbleToShutdownWhenThereAreTransactionsWaitingForLocks() thro // WHEN // one thread locks previously create node and initiates graph db shutdown - newSingleThreadExecutor().submit( new Callable() + newSingleThreadExecutor().submit( (Callable) () -> { - @Override - public Void call() throws Exception + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) - { - node.addLabel( label( "ABC" ) ); - nodeLockedLatch.countDown(); - Thread.sleep( 1_000 ); // Let the second thread attempt to lock same node - db.shutdown(); - tx.success(); - } - return null; + node.addLabel( label( "ABC" ) ); + nodeLockedLatch.countDown(); + Thread.sleep( 1_000 ); // Let the second thread attempt to lock same node + db.shutdown(); + tx.success(); } + return null; } ); // other thread tries to lock the same node while it has been locked and graph db is being shutdown - Future secondTxResult = newSingleThreadExecutor().submit( new Callable() + Future secondTxResult = newSingleThreadExecutor().submit( () -> { - @Override - public Void call() throws Exception + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) - { - nodeLockedLatch.await(); - node.addLabel( label( "DEF" ) ); - tx.success(); - } - return null; + nodeLockedLatch.await(); + node.addLabel( label( "DEF" ) ); + tx.success(); } + return null; } ); // THEN diff --git a/community/kernel/src/test/java/org/neo4j/helpers/progress/ProgressMonitorTest.java b/community/kernel/src/test/java/org/neo4j/helpers/progress/ProgressMonitorTest.java index 789c4a478184e..e8fcd65827246 100644 --- a/community/kernel/src/test/java/org/neo4j/helpers/progress/ProgressMonitorTest.java +++ b/community/kernel/src/test/java/org/neo4j/helpers/progress/ProgressMonitorTest.java @@ -622,14 +622,10 @@ ProgressMonitorFactory mock( Indicator indicatorMock, int indicatorSteps ) ProgressMonitorFactory mock( final Indicator.OpenEnded indicatorMock ) { ProgressMonitorFactory factory = Mockito.mock( ProgressMonitorFactory.class ); - when( factory.newOpenEndedIndicator( any( String.class ), anyInt() ) ).thenAnswer( new Answer() + when( factory.newOpenEndedIndicator( any( String.class ), anyInt() ) ).thenAnswer( invocation -> { - @Override - public Indicator answer( InvocationOnMock invocation ) throws Throwable - { - when( indicatorMock.reportResolution() ).thenReturn( (Integer) invocation.getArguments()[1] ); - return indicatorMock; - } + when( indicatorMock.reportResolution() ).thenReturn( (Integer) invocation.getArguments()[1] ); + return indicatorMock; } ); factoryMocks.put( factory, true ); return factory; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/RecoveryTest.java b/community/kernel/src/test/java/org/neo4j/kernel/RecoveryTest.java index 887e65cd6ce9a..9d5d3f849e058 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/RecoveryTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/RecoveryTest.java @@ -100,37 +100,33 @@ public void shouldRecoverExistingData() throws Exception final PhysicalLogFiles logFiles = new PhysicalLogFiles( directory.directory(), "log", fileSystemRule.get() ); File file = logFiles.getLogFileForVersion( logVersion ); - writeSomeData( file, new Visitor>,IOException>() + writeSomeData( file, pair -> { - @Override - public boolean visit( Pair> pair ) throws IOException - { - LogEntryWriter writer = pair.first(); - Consumer consumer = pair.other(); - LogPositionMarker marker = new LogPositionMarker(); - - // last committed tx - consumer.accept( marker ); - LogPosition lastCommittedTxPosition = marker.newPosition(); - writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); - lastCommittedTxStartEntry = new LogEntryStart( 0, 1, 2L, 3L, new byte[0], lastCommittedTxPosition ); - writer.writeCommitEntry( 4L, 5L ); - lastCommittedTxCommitEntry = new OnePhaseCommit( 4L, 5L ); - - // check point pointing to the previously committed transaction - writer.writeCheckPointEntry( lastCommittedTxPosition ); - expectedCheckPointEntry = new CheckPoint( lastCommittedTxPosition ); - - // tx committed after checkpoint - consumer.accept( marker ); - writer.writeStartEntry( 0, 1, 6L, 4L, new byte[0] ); - expectedStartEntry = new LogEntryStart( 0, 1, 6L, 4L, new byte[0], marker.newPosition() ); - - writer.writeCommitEntry( 5L, 7L ); - expectedCommitEntry = new OnePhaseCommit( 5L, 7L ); - - return true; - } + LogEntryWriter writer = pair.first(); + Consumer consumer = pair.other(); + LogPositionMarker marker = new LogPositionMarker(); + + // last committed tx + consumer.accept( marker ); + LogPosition lastCommittedTxPosition = marker.newPosition(); + writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); + lastCommittedTxStartEntry = new LogEntryStart( 0, 1, 2L, 3L, new byte[0], lastCommittedTxPosition ); + writer.writeCommitEntry( 4L, 5L ); + lastCommittedTxCommitEntry = new OnePhaseCommit( 4L, 5L ); + + // check point pointing to the previously committed transaction + writer.writeCheckPointEntry( lastCommittedTxPosition ); + expectedCheckPointEntry = new CheckPoint( lastCommittedTxPosition ); + + // tx committed after checkpoint + consumer.accept( marker ); + writer.writeStartEntry( 0, 1, 6L, 4L, new byte[0] ); + expectedStartEntry = new LogEntryStart( 0, 1, 6L, 4L, new byte[0], marker.newPosition() ); + + writer.writeCommitEntry( 5L, 7L ); + expectedCommitEntry = new OnePhaseCommit( 5L, 7L ); + + return true; } ); LifeSupport life = new LifeSupport(); @@ -159,26 +155,22 @@ public Visitor startRecovery() { recoveryRequired.set( true ); final Visitor actual = super.startRecovery(); - return new Visitor() + return tx -> { - @Override - public boolean visit( CommittedTransactionRepresentation tx ) throws Exception + actual.visit( tx ); + switch ( nr++ ) { - actual.visit( tx ); - switch ( nr++ ) - { - case 0: - assertEquals( lastCommittedTxStartEntry, tx.getStartEntry() ); - assertEquals( lastCommittedTxCommitEntry, tx.getCommitEntry() ); - break; - case 1: - assertEquals( expectedStartEntry, tx.getStartEntry() ); - assertEquals( expectedCommitEntry, tx.getCommitEntry() ); - break; - default: fail( "Too many recovered transactions" ); - } - return false; + case 0: + assertEquals( lastCommittedTxStartEntry, tx.getStartEntry() ); + assertEquals( lastCommittedTxCommitEntry, tx.getCommitEntry() ); + break; + case 1: + assertEquals( expectedStartEntry, tx.getStartEntry() ); + assertEquals( expectedCommitEntry, tx.getCommitEntry() ); + break; + default: fail( "Too many recovered transactions" ); } + return false; }; } }, monitor ) ); @@ -202,26 +194,22 @@ public void shouldSeeThatACleanDatabaseShouldNotRequireRecovery() throws Excepti final PhysicalLogFiles logFiles = new PhysicalLogFiles( directory.directory(), "log", fileSystemRule.get() ); File file = logFiles.getLogFileForVersion( logVersion ); - writeSomeData( file, new Visitor>,IOException>() + writeSomeData( file, pair -> { - @Override - public boolean visit( Pair> pair ) throws IOException - { - LogEntryWriter writer = pair.first(); - Consumer consumer = pair.other(); - LogPositionMarker marker = new LogPositionMarker(); + LogEntryWriter writer = pair.first(); + Consumer consumer = pair.other(); + LogPositionMarker marker = new LogPositionMarker(); - // last committed tx - consumer.accept( marker ); - writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); - writer.writeCommitEntry( 4L, 5L ); + // last committed tx + consumer.accept( marker ); + writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); + writer.writeCommitEntry( 4L, 5L ); - // check point - consumer.accept( marker ); - writer.writeCheckPointEntry( marker.newPosition() ); + // check point + consumer.accept( marker ); + writer.writeCheckPointEntry( marker.newPosition() ); - return true; - } + return true; } ); LifeSupport life = new LifeSupport(); @@ -268,20 +256,16 @@ public void shouldTruncateLogAfterSinglePartialTransaction() throws Exception File file = logFiles.getLogFileForVersion( logVersion ); final LogPositionMarker marker = new LogPositionMarker(); - writeSomeData( file, new Visitor>,IOException>() + writeSomeData( file, pair -> { - @Override - public boolean visit( Pair> pair ) throws IOException - { - LogEntryWriter writer = pair.first(); - Consumer consumer = pair.other(); + LogEntryWriter writer = pair.first(); + Consumer consumer = pair.other(); - // incomplete tx - consumer.accept( marker ); // <-- marker has the last good position - writer.writeStartEntry( 0, 1, 5L, 4L, new byte[0] ); + // incomplete tx + consumer.accept( marker ); // <-- marker has the last good position + writer.writeStartEntry( 0, 1, 5L, 4L, new byte[0] ); - return true; - } + return true; } ); // WHEN @@ -300,24 +284,20 @@ public void shouldTruncateLogAfterLastCompleteTransactionAfterSuccessfullRecover File file = logFiles.getLogFileForVersion( logVersion ); final LogPositionMarker marker = new LogPositionMarker(); - writeSomeData( file, new Visitor>,IOException>() + writeSomeData( file, pair -> { - @Override - public boolean visit( Pair> pair ) throws IOException - { - LogEntryWriter writer = pair.first(); - Consumer consumer = pair.other(); + LogEntryWriter writer = pair.first(); + Consumer consumer = pair.other(); - // last committed tx - writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); - writer.writeCommitEntry( 4L, 5L ); + // last committed tx + writer.writeStartEntry( 0, 1, 2L, 3L, new byte[0] ); + writer.writeCommitEntry( 4L, 5L ); - // incomplete tx - consumer.accept( marker ); // <-- marker has the last good position - writer.writeStartEntry( 0, 1, 5L, 4L, new byte[0] ); + // incomplete tx + consumer.accept( marker ); // <-- marker has the last good position + writer.writeStartEntry( 0, 1, 5L, 4L, new byte[0] ); - return true; - } + return true; } ); // WHEN @@ -341,21 +321,17 @@ public void shouldTellTransactionIdStoreAfterSuccessfullRecovery() throws Except final int authorId = 1; final long transactionId = 4; final long commitTimestamp = 5; - writeSomeData( file, new Visitor>,IOException>() + writeSomeData( file, pair -> { - @Override - public boolean visit( Pair> pair ) throws IOException - { - LogEntryWriter writer = pair.first(); - Consumer consumer = pair.other(); + LogEntryWriter writer = pair.first(); + Consumer consumer = pair.other(); - // last committed tx - writer.writeStartEntry( masterId, authorId, 2L, 3L, additionalHeaderData ); - writer.writeCommitEntry( transactionId, commitTimestamp ); - consumer.accept( marker ); + // last committed tx + writer.writeStartEntry( masterId, authorId, 2L, 3L, additionalHeaderData ); + writer.writeCommitEntry( transactionId, commitTimestamp ); + consumer.accept( marker ); - return true; - } + return true; } ); // WHEN diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java index a6b0daa6f6f56..bf52cae748594 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueConstraintCompatibility.java @@ -609,21 +609,17 @@ private Future applyChangesToPopulatingUpdater( // lock. We need to sneak past these locks. final CountDownLatch createNodeReadyLatch = new CountDownLatch( 1 ); final CountDownLatch createNodeCommitLatch = new CountDownLatch( 1 ); - Future updatingTransaction = executor.submit( new Runnable() + Future updatingTransaction = executor.submit( () -> { - @Override - public void run() + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) + for ( Action action : actions ) { - for ( Action action : actions ) - { - action.accept( tx ); - } - tx.success(); - createNodeReadyLatch.countDown(); - awaitUninterruptibly( createNodeCommitLatch ); + action.accept( tx ); } + tx.success(); + createNodeReadyLatch.countDown(); + awaitUninterruptibly( createNodeCommitLatch ); } } ); createNodeReadyLatch.await(); @@ -649,15 +645,8 @@ public void run() // population job to finish, and it's population job should in turn be blocked // on the lockBlockingIndexPopulator above: final CountDownLatch createConstraintTransactionStarted = new CountDownLatch( 1 ); - Future createConstraintTransaction = executor.submit( new Runnable() - { - @Override - public void run() - { - - createUniqueConstraint( createConstraintTransactionStarted ); - } - } ); + Future createConstraintTransaction = executor.submit( + () -> createUniqueConstraint( createConstraintTransactionStarted ) ); createConstraintTransactionStarted.await(); // Now we can initiate the data-changing commit. It should then diff --git a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/AwaitIndexProcedureTest.java b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/AwaitIndexProcedureTest.java index c44f6bce073d6..78ded5abd8c61 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/AwaitIndexProcedureTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/AwaitIndexProcedureTest.java @@ -162,14 +162,7 @@ public void shouldBlockUntilTheIndexIsOnline() throws SchemaRuleNotFoundExceptio when( operations.indexGetForSchema( anyObject() ) ).thenReturn( anyIndex ); AtomicReference state = new AtomicReference<>( POPULATING ); - when( operations.indexGetState( any( IndexDescriptor.class ) ) ).then( new Answer() - { - @Override - public InternalIndexState answer( InvocationOnMock invocationOnMock ) throws Throwable - { - return state.get(); - } - } ); + when( operations.indexGetState( any( IndexDescriptor.class ) ) ).then( invocationOnMock -> state.get() ); AtomicBoolean done = new AtomicBoolean( false ); new Thread( () -> diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/AbstractNeo4jTestCase.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/AbstractNeo4jTestCase.java index 06df71fa6e877..fa945e1987cf8 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/AbstractNeo4jTestCase.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/AbstractNeo4jTestCase.java @@ -64,16 +64,12 @@ public abstract class AbstractNeo4jTestCase protected static final File NEO4J_BASE_DIR = new File( "target", "var" ); @ClassRule - public static final TestRule START_GRAPHDB = new TestRule() + public static final TestRule START_GRAPHDB = ( base, description ) -> { - @Override - public Statement apply( Statement base, Description description ) - { - tearDownDb(); - setupGraphDatabase( description.getTestClass().getName(), - description.getTestClass().getAnnotation( RequiresPersistentGraphDatabase.class ).value() ); - return base; - } + tearDownDb(); + setupGraphDatabase( description.getTestClass().getName(), + description.getTestClass().getAnnotation( RequiresPersistentGraphDatabase.class ).value() ); + return base; }; private static ThreadLocal threadLocalGraphDb = new ThreadLocal<>(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java index 45b06649fa98f..2d910ab23fc7f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java @@ -286,14 +286,7 @@ public void shouldFailUniquenessCreateOnRepeatedPropertyId() throws Exception @SafeVarargs private static Answer> withIterator( final T... content ) { - return new Answer>() - { - @Override - public Iterator answer( InvocationOnMock invocationOnMock ) throws Throwable - { - return iterator( content ); - } - }; + return invocationOnMock -> iterator( content ); } private final KernelStatement state = StatementOperationsTestHelper.mockedState(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/FlippableIndexProxyTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/FlippableIndexProxyTest.java index 5b86b0e0fb2fc..5f5ae1b8b311f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/FlippableIndexProxyTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/FlippableIndexProxyTest.java @@ -151,14 +151,10 @@ public void shouldBlockAccessDuringFlipAndThenDelegateToCorrectContext() throws private OtherThreadExecutor.WorkerCommand dropTheIndex( final FlippableIndexProxy flippable ) { - return new OtherThreadExecutor.WorkerCommand() + return state -> { - @Override - public Void doWork( Void state ) throws IOException - { - awaitFuture( flippable.drop() ); - return null; - } + awaitFuture( flippable.drop() ); + return null; }; } @@ -166,23 +162,15 @@ private OtherThreadExecutor.WorkerCommand startFlipAndWaitForLatchBe final FlippableIndexProxy flippable, final CountDownLatch triggerFinishFlip, final CountDownLatch triggerExternalAccess ) { - return new OtherThreadExecutor.WorkerCommand() + return state -> { - @Override - public Void doWork( Void state ) throws FlipFailedKernelException + flippable.flip( () -> { - flippable.flip( new Callable() - { - @Override - public Void call() - { - triggerExternalAccess.countDown(); - assertTrue( awaitLatch( triggerFinishFlip ) ); - return null; - } - }, null ); + triggerExternalAccess.countDown(); + assertTrue( awaitLatch( triggerFinishFlip ) ); return null; - } + }, null ); + return null; }; } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java index dc078124aea10..eefb8cc6fdbba 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java @@ -291,14 +291,10 @@ private void killDb() throws Exception private Future killDbInSeparateThread() { ExecutorService executor = newSingleThreadExecutor(); - Future result = executor.submit( new Callable() + Future result = executor.submit( () -> { - @Override - public Void call() throws Exception - { - killDb(); - return null; - } + killDb(); + return null; } ); executor.shutdown(); return result; @@ -397,14 +393,10 @@ public void close() throws IOException, IndexEntryConflictException @Override public void remove( PrimitiveLongSet nodeIds ) throws IOException { - nodeIds.visitKeys( new PrimitiveLongVisitor() + nodeIds.visitKeys( nodeId -> { - @Override - public boolean visited( long nodeId ) throws RuntimeException - { - recoveredNodes.add( nodeId ); - return false; - } + recoveredNodes.add( nodeId ); + return false; } ); } }; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java index c9e2d6321184e..e50228b96e6ff 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java @@ -283,14 +283,7 @@ public void shouldWorkWhileHavingHeavyConcurrentUpdates() throws Exception final Collection> jobs = new ArrayList<>( threads ); for ( int i = 0; i < threads; i++ ) { - jobs.add( new Callable() - { - @Override - public UpdatesTracker call() throws Exception - { - return executeCreationsDeletionsAndUpdates( nodes, index, CREATION_MULTIPLIER ); - } - } ); + jobs.add( () -> executeCreationsDeletionsAndUpdates( nodes, index, CREATION_MULTIPLIER ) ); } List> futures = executorService.invokeAll( jobs ); @@ -372,26 +365,22 @@ private long[] repeatCreateNamedPeopleFor( int totalNumberOfPeople ) throws Exce { final int finalI = i; - jobs.add( new Callable() + jobs.add( () -> { - @Override - public Void call() throws Exception + int offset = finalI * peoplePerThread; + while ( offset < (finalI + 1) * peoplePerThread ) { - int offset = finalI * peoplePerThread; - while ( offset < (finalI + 1) * peoplePerThread ) + try + { + offset += createNamedPeople( nodes, offset ); + } + catch ( KernelException e ) { - try - { - offset += createNamedPeople( nodes, offset ); - } - catch ( KernelException e ) - { - exception.compareAndSet( null, e ); - throw new RuntimeException( e ); - } + exception.compareAndSet( null, e ); + throw new RuntimeException( e ); } - return null; } + return null; } ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/UniqueInMemoryIndex.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/UniqueInMemoryIndex.java index da3ae852c19aa..c3fd7820b36bd 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/UniqueInMemoryIndex.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/UniqueInMemoryIndex.java @@ -41,14 +41,10 @@ class UniqueInMemoryIndex extends InMemoryIndex { private final LabelSchemaDescriptor schema; - private final PrimitiveLongVisitor removeFromIndex = new PrimitiveLongVisitor() + private final PrimitiveLongVisitor removeFromIndex = nodeId -> { - @Override - public boolean visited( long nodeId ) - { - UniqueInMemoryIndex.this.remove( nodeId ); - return false; - } + UniqueInMemoryIndex.this.remove( nodeId ); + return false; }; UniqueInMemoryIndex( LabelSchemaDescriptor schema ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/SchemaTransactionStateTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/SchemaTransactionStateTest.java index 41eaad9747cc9..22fb79b97c795 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/SchemaTransactionStateTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/SchemaTransactionStateTest.java @@ -255,14 +255,7 @@ public void before() throws Exception private static Answer> asAnswer( final Iterable values ) { - return new Answer>() - { - @Override - public Iterator answer( InvocationOnMock invocation ) throws Throwable - { - return values.iterator(); - } - }; + return invocation -> values.iterator(); } private static class Labels diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NestedTransactionLocksIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NestedTransactionLocksIT.java index 22a7f3cc7a648..7d5c8aaa49164 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NestedTransactionLocksIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NestedTransactionLocksIT.java @@ -63,15 +63,11 @@ public void after() throws Exception private WorkerCommand acquireWriteLock( final Node resource ) { - return new WorkerCommand() + return state -> { - @Override - public Lock doWork( Void state ) + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) - { - return tx.acquireWriteLock( resource ); - } + return tx.acquireWriteLock( resource ); } }; } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeManagerTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeManagerTest.java index 450c85fa60910..cb7fe8934c41e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeManagerTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeManagerTest.java @@ -104,17 +104,13 @@ public void getAllRelationshipsIteratorShouldPickUpHigherIdsThanHighIdWhenStarte tx = db.beginTx(); Iterator allRelationships = db.getAllRelationships().iterator(); - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() - { - Transaction newTx = db.beginTx(); - assertThat( newTx, not( instanceOf( PlaceboTransaction.class ) ) ); - createRelationshipAssumingTxWith( "key", 3 ); - newTx.success(); - newTx.close(); - } + Transaction newTx = db.beginTx(); + assertThat( newTx, not( instanceOf( PlaceboTransaction.class ) ) ); + createRelationshipAssumingTxWith( "key", 3 ); + newTx.success(); + newTx.close(); } ); thread.start(); thread.join(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeProxyTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeProxyTest.java index 3e68010a73439..168bcee3a345a 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeProxyTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/NodeProxyTest.java @@ -259,50 +259,42 @@ public void getAllPropertiesShouldWorkFineWithConcurrentPropertyModifications() final CountDownLatch start = new CountDownLatch( 1 ); final AtomicBoolean writerDone = new AtomicBoolean(); - Runnable writer = new Runnable() + Runnable writer = () -> { - @Override - public void run() + try { - try + awaitLatch( start ); + int propertyKey = 0; + while ( propertyKey < propertiesCount ) { - awaitLatch( start ); - int propertyKey = 0; - while ( propertyKey < propertiesCount ) + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) + Node node = db.getNodeById( nodeId ); + for ( int i = 0; i < 10 && propertyKey < propertiesCount; i++, propertyKey++ ) { - Node node = db.getNodeById( nodeId ); - for ( int i = 0; i < 10 && propertyKey < propertiesCount; i++, propertyKey++ ) - { - node.setProperty( "property-" + propertyKey, UUID.randomUUID().toString() ); - } - tx.success(); + node.setProperty( "property-" + propertyKey, UUID.randomUUID().toString() ); } + tx.success(); } } - finally - { - writerDone.set( true ); - } + } + finally + { + writerDone.set( true ); } }; - Runnable reader = new Runnable() + Runnable reader = () -> { - @Override - public void run() + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) + Node node = db.getNodeById( nodeId ); + awaitLatch( start ); + while ( !writerDone.get() ) { - Node node = db.getNodeById( nodeId ); - awaitLatch( start ); - while ( !writerDone.get() ) - { - int size = node.getAllProperties().size(); - assertThat( size, greaterThan( 0 ) ); - } - tx.success(); + int size = node.getAllProperties().size(); + assertThat( size, greaterThan( 0 ) ); } + tx.success(); } }; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestCrashWithRebuildSlow.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestCrashWithRebuildSlow.java index f3ff3990bbd2e..594b5d2fce20f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestCrashWithRebuildSlow.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestCrashWithRebuildSlow.java @@ -205,14 +205,10 @@ private static Map getHighIds( GraphDatabaseAPI db ) final Map highIds = new HashMap<>(); NeoStores neoStores = db.getDependencyResolver().resolveDependency( RecordStorageEngine.class ).testAccessNeoStores(); - Visitor visitor = new Visitor() + Visitor visitor = store -> { - @Override - public boolean visit( CommonAbstractStore store ) throws RuntimeException - { - highIds.put( store.getIdType(), store.getHighId() ); - return true; - } + highIds.put( store.getIdType(), store.getHighId() ); + return true; }; neoStores.visitStore( visitor ); return highIds; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestIsolationBasic.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestIsolationBasic.java index 7f8dbae0e7e98..9b286b9b66d33 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestIsolationBasic.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestIsolationBasic.java @@ -74,47 +74,44 @@ public void testSimpleTransactionIsolation() throws Exception // This is the mutating transaction - it will change stuff which will be read in between final AtomicReference t1Exception = new AtomicReference<>(); - Thread t1 = new Thread( new Runnable() + Thread t1 = new Thread( () -> { - public void run() - { - try ( Transaction tx = getGraphDb().beginTx() ) + try ( Transaction tx = getGraphDb().beginTx() ) + { + node1.setProperty( "key", "new" ); + rel1.setProperty( "key", "new" ); + node1.createRelationshipTo( node2, RelationshipType.withName( "TEST" ) ); + assertPropertyEqual( node1, "key", "new" ); + assertPropertyEqual( rel1, "key", "new" ); + assertRelationshipCount( node1, 2 ); + assertRelationshipCount( node2, 2 ); + latch1.countDown(); + latch2.await(); + assertPropertyEqual( node1, "key", "new" ); + assertPropertyEqual( rel1, "key", "new" ); + assertRelationshipCount( node1, 2 ); + assertRelationshipCount( node2, 2 ); + // no tx.success(); + } + catch ( Exception e ) + { + e.printStackTrace(); + Thread.interrupted(); + t1Exception.set( e ); + } + finally + { + try { - node1.setProperty( "key", "new" ); - rel1.setProperty( "key", "new" ); - node1.createRelationshipTo( node2, RelationshipType.withName( "TEST" ) ); - assertPropertyEqual( node1, "key", "new" ); - assertPropertyEqual( rel1, "key", "new" ); - assertRelationshipCount( node1, 2 ); - assertRelationshipCount( node2, 2 ); - latch1.countDown(); - latch2.await(); - assertPropertyEqual( node1, "key", "new" ); - assertPropertyEqual( rel1, "key", "new" ); - assertRelationshipCount( node1, 2 ); - assertRelationshipCount( node2, 2 ); - // no tx.success(); + assertPropertyEqual( node1, "key", "old" ); + assertPropertyEqual( rel1, "key", "old" ); + assertRelationshipCount( node1, 1 ); + assertRelationshipCount( node2, 1 ); } catch ( Exception e ) { - e.printStackTrace(); - Thread.interrupted(); - t1Exception.set( e ); - } - finally - { - try - { - assertPropertyEqual( node1, "key", "old" ); - assertPropertyEqual( rel1, "key", "old" ); - assertRelationshipCount( node1, 1 ); - assertRelationshipCount( node2, 1 ); - } - catch ( Exception e ) - { - t1Exception.compareAndSet( null, e ); - } + t1Exception.compareAndSet( null, e ); } } } ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestRelationship.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestRelationship.java index c982dba60fecf..8aa5d327f83f5 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestRelationship.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestRelationship.java @@ -700,14 +700,7 @@ public void testRelationshipIsType() Node node2 = getGraphDb().createNode(); Relationship rel = node1.createRelationshipTo( node2, MyRelTypes.TEST ); assertTrue( rel.isType( MyRelTypes.TEST ) ); - assertTrue( rel.isType( new RelationshipType() - { - @Override - public String name() - { - return MyRelTypes.TEST.name(); - } - } ) ); + assertTrue( rel.isType( () -> MyRelTypes.TEST.name() ) ); assertFalse( rel.isType( MyRelTypes.TEST_TRAVERSAL ) ); rel.delete(); node1.delete(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/TestIndexProviderStore.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/TestIndexProviderStore.java index e179486a47684..f32bf45db5883 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/TestIndexProviderStore.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/TestIndexProviderStore.java @@ -169,20 +169,16 @@ public void shouldForceChannelAfterWritingMetadata() throws IOException FileSystemAbstraction fs = spy( fileSystem ); StoreChannel tempChannel; - when( tempChannel = fs.open( file, "rw" ) ).then( new Answer() + when( tempChannel = fs.open( file, "rw" ) ).then( ignored -> { - @Override - public StoreChannel answer( InvocationOnMock ignored ) throws Throwable + StoreChannel channel = fileSystem.open( file, "rw" ); + if ( channelUsedToCreateFile[0] == null ) { - StoreChannel channel = fileSystem.open( file, "rw" ); - if ( channelUsedToCreateFile[0] == null ) - { - StoreChannel channelSpy = spy( channel ); - channelUsedToCreateFile[0] = channelSpy; - channel = channelSpy; - } - return channel; + StoreChannel channelSpy = spy( channel ); + channelUsedToCreateFile[0] = channelSpy; + channel = channelSpy; } + return channel; } ); // Doing the FSA spying above, calling fs.open, actually invokes that method and so a channel diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/RelationshipCreateDeleteLockOrderingIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/RelationshipCreateDeleteLockOrderingIT.java index d7df45ebb9467..9541bd9ea4aae 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/RelationshipCreateDeleteLockOrderingIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/RelationshipCreateDeleteLockOrderingIT.java @@ -62,28 +62,24 @@ public void shouldNotDeadlockWhenConcurrentCreateAndDeleteRelationships() throws // a bunch of deleters for ( int i = 0; i < 30; i++ ) { - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) + Node node = random.nextBoolean() ? a : b; + for ( Relationship relationship : node.getRelationships() ) { - Node node = random.nextBoolean() ? a : b; - for ( Relationship relationship : node.getRelationships() ) + try { - try - { - relationship.delete(); - } - catch ( NotFoundException e ) - { - // This is OK and expected since there are multiple threads deleting - assertTrue( e.getMessage().contains( "already deleted" ) ); - } + relationship.delete(); + } + catch ( NotFoundException e ) + { + // This is OK and expected since there are multiple threads deleting + assertTrue( e.getMessage().contains( "already deleted" ) ); } - tx.success(); } + tx.success(); } } ); } @@ -91,19 +87,15 @@ public void run() // a bunch of creators for ( int i = 0; i < 30; i++ ) { - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + try ( Transaction tx = db.beginTx() ) { - try ( Transaction tx = db.beginTx() ) - { - boolean order = random.nextBoolean(); - Node start = order ? a : b; - Node end = order ? b : a; - start.createRelationshipTo( end, MyRelTypes.TEST ); - tx.success(); - } + boolean order = random.nextBoolean(); + Node start = order ? a : b; + Node end = order ? b : a; + start.createRelationshipTo( end, MyRelTypes.TEST ); + tx.success(); } } ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/CountsOracle.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/CountsOracle.java index 86ab3654af9de..416f22792604e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/CountsOracle.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/CountsOracle.java @@ -83,14 +83,8 @@ public void verify( f { CountsRecordState seenState = new CountsRecordState(); final CountsAccessor.Initializer initializer = new CountsAccessor.Initializer( seenState, seenState ); - List differences = state.verify( new CountsVisitor.Visitable() - { - @Override - public void accept( final CountsVisitor verifier ) - { - tracker.accept( CountsVisitor.Adapter.multiplex( initializer, verifier ) ); - } - } ); + List differences = state.verify( + verifier -> tracker.accept( CountsVisitor.Adapter.multiplex( initializer, verifier ) ) ); seenState.accept( new CountsVisitor() { @Override diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/HighestTransactionIdTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/HighestTransactionIdTest.java index bda5cc8db8d21..279cd8062373b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/HighestTransactionIdTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/HighestTransactionIdTest.java @@ -71,15 +71,11 @@ public void shouldKeepHighestDuringConcurrentOfferings() throws Throwable for ( int i = 0; i < updaters; i++ ) { final long id = i + 1; - race.addContestant( new Runnable() + race.addContestant( () -> { - @Override - public void run() + if ( highest.offer( id, id, id ) ) { - if ( highest.offer( id, id, id ) ) - { - accepted.incrementAndGet(); - } + accepted.incrementAndGet(); } } ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NeoStoresTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NeoStoresTest.java index 0515c10cf449a..19d19e23a814c 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NeoStoresTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NeoStoresTest.java @@ -1196,15 +1196,11 @@ private void assertRelationshipData( long rel, final long firstNode, final long { try { - storeLayer.relationshipVisit( rel, new RelationshipVisitor() + storeLayer.relationshipVisit( rel, ( relId, type, startNode, endNode ) -> { - @Override - public void visit( long relId, int type, long startNode, long endNode ) - { - assertEquals( firstNode, startNode ); - assertEquals( secondNode, endNode ); - assertEquals( relType, type ); - } + assertEquals( firstNode, startNode ); + assertEquals( secondNode, endNode ); + assertEquals( relType, type ); } ); } catch ( EntityNotFoundException e ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NodeStoreTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NodeStoreTest.java index 4ca51584cf08e..f6bfe8c019cc8 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NodeStoreTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/NodeStoreTest.java @@ -250,15 +250,11 @@ public void scanningRecordsShouldVisitEachInUseRecordOnce() throws IOException // ...WHEN we now have an interesting set of node records, and we // visit each and remove that node from our nextRelSet... - Visitor scanner = new Visitor() + Visitor scanner = record -> { - @Override - public boolean visit( NodeRecord record ) throws IOException - { - // ...THEN we should observe that no nextRel is ever removed twice... - assertTrue( nextRelSet.remove( record.getNextRel() ) ); - return false; - } + // ...THEN we should observe that no nextRel is ever removed twice... + assertTrue( nextRelSet.remove( record.getNextRel() ) ); + return false; }; nodeStore.scanAllRecords( scanner ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/PropertyStoreTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/PropertyStoreTest.java index 770c921b5750d..31bf6208c8323 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/PropertyStoreTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/PropertyStoreTest.java @@ -97,15 +97,11 @@ public void shouldWriteOutTheDynamicChainBeforeUpdatingThePropertyRecord() throw PropertyBlock propertyBlock = propertyBlockWith( dynamicRecord ); record.setPropertyBlock( propertyBlock ); - doAnswer( new Answer() + doAnswer( invocation -> { - @Override - public Object answer( InvocationOnMock invocation ) throws Throwable - { - PropertyRecord recordBeforeWrite = store.getRecord( propertyRecordId, store.newRecord(), FORCE ); - assertFalse( recordBeforeWrite.inUse() ); - return null; - } + PropertyRecord recordBeforeWrite = store.getRecord( propertyRecordId, store.newRecord(), FORCE ); + assertFalse( recordBeforeWrite.inUse() ); + return null; } ).when( stringPropertyStore ).updateRecord( dynamicRecord ); // when diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/RelationshipChainPointerChasingTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/RelationshipChainPointerChasingTest.java index ea0ca9fadab0e..3a886dc20972f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/RelationshipChainPointerChasingTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/RelationshipChainPointerChasingTest.java @@ -155,15 +155,11 @@ private void assertNext( Relationship expected, Iterator iterator private void deleteRelationshipsInSeparateThread( final Relationship... relationships ) throws InterruptedException { - executeTransactionInSeparateThread( new Runnable() + executeTransactionInSeparateThread( () -> { - @Override - public void run() + for ( Relationship relationship : relationships ) { - for ( Relationship relationship : relationships ) - { - relationship.delete(); - } + relationship.delete(); } } ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/id/DelayedBufferTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/id/DelayedBufferTest.java index d416202065098..99aa1490d2902 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/id/DelayedBufferTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/id/DelayedBufferTest.java @@ -64,19 +64,15 @@ public void shouldHandleTheWholeWorkloadShebang() throws Throwable for ( int i = 0; i < numberOfAdders; i++ ) { final int finalI = i; - adders.addContestant( new Runnable() + adders.addContestant( () -> { - @Override - public void run() + for ( int j = 0; j < size; j++ ) { - for ( int j = 0; j < size; j++ ) + if ( j % numberOfAdders == finalI ) { - if ( j % numberOfAdders == finalI ) - { - buffer.offer( j ); - offeredIds[j] = 1; - parkNanos( MILLISECONDS.toNanos( current().nextInt( 2 ) ) ); - } + buffer.offer( j ); + offeredIds[j] = 1; + parkNanos( MILLISECONDS.toNanos( current().nextInt( 2 ) ) ); } } } ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStoreTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStoreTest.java index e3133d4cdc940..3f910a22b027b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStoreTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/AbstractKeyValueStoreTest.java @@ -208,16 +208,12 @@ public void shouldNotPickCorruptStoreFile() throws Exception KeyValueStoreFile old = file.other(); final int data = txId; file = rotation.next( file.first(), Headers.headersBuilder().put( TX_ID, (long) txId ).headers(), data( - new Entry() + (Entry) ( key, value ) -> { - @Override - public void write( WritableBuffer key, WritableBuffer value ) - { - key.putByte( 0, (byte) 'f' ); - key.putByte( 1, (byte) 'o' ); - key.putByte( 2, (byte) 'o' ); - value.putInt( 0, data ); - } + key.putByte( 0, (byte) 'f' ); + key.putByte( 1, (byte) 'o' ); + key.putByte( 2, (byte) 'o' ); + value.putInt( 0, data ); } ) ); old.close(); @@ -273,42 +269,31 @@ public void shouldPickTheUncorruptedStoreWhenTruncatingAfterTheHeader() throws I Pair file = store.rotationStrategy.create( EMPTY_DATA_PROVIDER, 1 ); Pair next = store.rotationStrategy - .next( file.first(), Headers.headersBuilder().put( TX_ID, (long) 42 ).headers(), data( new Entry() - { - @Override - public void write( WritableBuffer key, WritableBuffer value ) - { - key.putByte( 0, (byte) 'f' ); - key.putByte( 1, (byte) 'o' ); - key.putByte( 2, (byte) 'o' ); - value.putInt( 0, 42 ); - } - } ) ); + .next( file.first(), Headers.headersBuilder().put( TX_ID, (long) 42 ).headers(), data( + (Entry) ( key, value ) -> + { + key.putByte( 0, (byte) 'f' ); + key.putByte( 1, (byte) 'o' ); + key.putByte( 2, (byte) 'o' ); + value.putInt( 0, 42 ); + } ) ); file.other().close(); File correct = next.first(); Pair nextNext = store.rotationStrategy - .next( correct, Headers.headersBuilder().put( TX_ID, (long) 43 ).headers(), data( new Entry() + .next( correct, Headers.headersBuilder().put( TX_ID, (long) 43 ).headers(), data( ( key, value ) -> { - @Override - public void write( WritableBuffer key, WritableBuffer value ) - { - key.putByte( 0, (byte) 'f' ); - key.putByte( 1, (byte) 'o' ); - key.putByte( 2, (byte) 'o' ); - value.putInt( 0, 42 ); - } - }, new Entry() + key.putByte( 0, (byte) 'f' ); + key.putByte( 1, (byte) 'o' ); + key.putByte( 2, (byte) 'o' ); + value.putInt( 0, 42 ); + }, ( key, value ) -> { - @Override - public void write( WritableBuffer key, WritableBuffer value ) - { - key.putByte( 0, (byte) 'b' ); - key.putByte( 1, (byte) 'a' ); - key.putByte( 2, (byte) 'r' ); - value.putInt( 0, 4242 ); - } - }) ); + key.putByte( 0, (byte) 'b' ); + key.putByte( 1, (byte) 'a' ); + key.putByte( 2, (byte) 'r' ); + value.putInt( 0, 4242 ); + } ) ); next.other().close(); File corrupted = nextNext.first(); nextNext.other().close(); @@ -482,14 +467,7 @@ public void shouldLeaveStoreInGoodStateAfterRotationFailure() throws Exception private static ValueUpdate longValue( long value ) { - return new ValueUpdate() - { - @Override - public void update( WritableBuffer target ) - { - target.putLong( 0, value ); - } - }; + return target -> target.putLong( 0, value ); } private Store createTestStore() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/KeyValueStoreFileFormatTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/KeyValueStoreFileFormatTest.java index edabc74649078..2c4d852f78807 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/KeyValueStoreFileFormatTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/store/kvstore/KeyValueStoreFileFormatTest.java @@ -373,25 +373,14 @@ private static Pair> find( KeyValueStoreFile file, final int throws IOException { final List values = new ArrayList<>(); - boolean result = file.scan( new SearchKey() + boolean result = file.scan( key -> key.putInt( key.size() - 4, min ), ( key, value ) -> { - @Override - public void searchKey( WritableBuffer key ) + if ( key.getInt( key.size() - 4 ) <= max ) { - key.putInt( key.size() - 4, min ); - } - }, new KeyValueVisitor() - { - @Override - public boolean visit( ReadableBuffer key, ReadableBuffer value ) - { - if ( key.getInt( key.size() - 4 ) <= max ) - { - values.add( new Bytes( value.get( 0, new byte[value.size()] ) ) ); - return true; - } - return false; + values.add( new Bytes( value.get( 0, new byte[value.size()] ) ) ); + return true; } + return false; } ); return Pair.of( result, values ); } @@ -496,21 +485,17 @@ void done() static KeyValueVisitor expectData( final Data expected ) { expected.index = 0; // reset the visitor - return new KeyValueVisitor() + return ( key, value ) -> { - @Override - public boolean visit( ReadableBuffer key, ReadableBuffer value ) + byte[] expectedKey = new byte[key.size()]; + byte[] expectedValue = new byte[value.size()]; + if ( !expected.visit( new BigEndianByteArrayBuffer( expectedKey ), + new BigEndianByteArrayBuffer( expectedValue ) ) ) { - byte[] expectedKey = new byte[key.size()]; - byte[] expectedValue = new byte[value.size()]; - if ( !expected.visit( new BigEndianByteArrayBuffer( expectedKey ), - new BigEndianByteArrayBuffer( expectedValue ) ) ) - { - return false; - } - assertEqualContent( expectedKey, key ); - return true; + return false; } + assertEqualContent( expectedKey, key ); + return true; }; } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/storemigration/legacylogs/LegacyLogEntryReaderTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/storemigration/legacylogs/LegacyLogEntryReaderTest.java index 37e119a4823ea..0cf1f19480f8a 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/storemigration/legacylogs/LegacyLogEntryReaderTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/storemigration/legacylogs/LegacyLogEntryReaderTest.java @@ -90,14 +90,7 @@ public void shouldReturnNoEntriesWhenTheChannelContainsNothing() throws IOExcept final LogEntryReader logEntryReader = mock( LogEntryReader.class ); when( logEntryReader.readLogEntry( any( ReadableLogChannel.class ) ) ).thenReturn( null ); final LegacyLogEntryReader reader = new LegacyLogEntryReader( fs, - new Function>() - { - @Override - public LogEntryReader apply( LogHeader from ) throws RuntimeException - { - return logEntryReader; - } - } ); + from -> logEntryReader ); // when final IOCursor cursor = reader.openReadableChannel( input ).other(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/PropertyLoaderTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/PropertyLoaderTest.java index a4001a1d013b0..10c4021aaea31 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/PropertyLoaderTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/PropertyLoaderTest.java @@ -169,16 +169,12 @@ private void setUpRelationship( long id, int... propertyValues ) private void setUpPropertyChain( long id, Class recordClass, CommonAbstractStore store, int... propertyValues ) { - when( store.getRecord( eq( id ), any( recordClass ), any( RecordLoad.class ) ) ).thenAnswer( new Answer() + when( store.getRecord( eq( id ), any( recordClass ), any( RecordLoad.class ) ) ).thenAnswer( invocation -> { - @Override - public R answer( InvocationOnMock invocation ) throws Throwable - { - R record = (R) invocation.getArguments()[1]; - record.setId( ((Number)invocation.getArguments()[0]).longValue() ); - record.setNextProp( 1 ); - return record; - } + R record = (R) invocation.getArguments()[1]; + record.setId( ((Number)invocation.getArguments()[0]).longValue() ); + record.setNextProp( 1 ); + return record; } ); List propertyChain = new ArrayList<>( propertyValues.length ); for ( int i = 0; i < propertyValues.length; i++ ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestBidirectionalTraversal.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestBidirectionalTraversal.java index c33e950da49c1..591599911c478 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestBidirectionalTraversal.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestBidirectionalTraversal.java @@ -203,12 +203,8 @@ public void mirroredTraversalReversesInitialState() throws Exception */ createGraph( "a TO b", "b TO c", "c TO d" ); - BranchCollisionPolicy collisionPolicy = new BranchCollisionPolicy() - { - @Override - public BranchCollisionDetector create( Evaluator evaluator, Predicate pathPredicate ) - { - return new StandardBranchCollisionDetector( null, null ) + BranchCollisionPolicy collisionPolicy = + ( evaluator, pathPredicate ) -> new StandardBranchCollisionDetector( null, null ) { @Override protected boolean includePath( Path path, TraversalBranch startPath, TraversalBranch endPath ) @@ -218,8 +214,6 @@ protected boolean includePath( Path path, TraversalBranch startPath, TraversalBr return true; } }; - } - }; Iterables.count( getGraphDb().bidirectionalTraversalDescription() // Just make up a number bigger than the path length (in this case 10) so that we can assert it in diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestMultiPruneEvaluators.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestMultiPruneEvaluators.java index 656b1f2f61622..817a480aeef56 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestMultiPruneEvaluators.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestMultiPruneEvaluators.java @@ -54,14 +54,9 @@ public void setupGraph() @Test public void testMaxDepthAndCustomPruneEvaluatorCombined() { - Evaluator lessThanThreeRels = new Evaluator() - { - public Evaluation evaluate( Path path ) - { - return count( path.endNode().getRelationships( Direction.OUTGOING ).iterator() ) < 3 ? + Evaluator lessThanThreeRels = + path -> count( path.endNode().getRelationships( Direction.OUTGOING ).iterator() ) < 3 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.INCLUDE_AND_CONTINUE; - } - }; TraversalDescription description = getGraphDb().traversalDescription().evaluator( Evaluators.all() ) .evaluator( toDepth( 1 ) ).evaluator( lessThanThreeRels ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestTraversalWithLoops.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestTraversalWithLoops.java index 1f67825c107de..ff3f7a6590c5b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestTraversalWithLoops.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TestTraversalWithLoops.java @@ -46,14 +46,7 @@ public void traverseThroughNodeWithLoop() throws Exception { Node a = getNodeWithName( "a" ); final Node e = getNodeWithName( "e" ); - Evaluator onlyEndNode = new Evaluator() - { - @Override - public Evaluation evaluate( Path path ) - { - return Evaluation.ofIncludes( path.endNode().equals( e ) ); - } - }; + Evaluator onlyEndNode = path -> Evaluation.ofIncludes( path.endNode().equals( e ) ); TraversalDescription basicTraverser = getGraphDb().traversalDescription().evaluator( onlyEndNode ); expectPaths( basicTraverser.traverse( a ), "a,b,c,d,e" ); expectPaths( basicTraverser.uniqueness( Uniqueness.RELATIONSHIP_PATH ).traverse( a ), diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TraversalTestBase.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TraversalTestBase.java index 742a1217dd673..cdea47b5ed7ad 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TraversalTestBase.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/traversal/TraversalTestBase.java @@ -120,13 +120,8 @@ protected void assertLevels( Traverser traverser, Stack> levels ) protected static final Representation NAME_PROPERTY_REPRESENTATION = new PropertyRepresentation( "name" ); - protected static final Representation RELATIONSHIP_TYPE_REPRESENTATION = new Representation() - { - public String represent( Relationship item ) - { - return item.getType().name(); - } - }; + protected static final Representation RELATIONSHIP_TYPE_REPRESENTATION = + item -> item.getType().name(); protected interface Representation { diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/AutoCreatingHashMap.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/AutoCreatingHashMap.java index eae4b0289eeb7..a139d9a28695f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/AutoCreatingHashMap.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/AutoCreatingHashMap.java @@ -118,19 +118,15 @@ public V get( Object key ) */ public static Factory values( final Class valueType ) { - return new Factory() + return () -> { - @Override - public V newInstance() + try { - try - { - return valueType.newInstance(); - } - catch ( InstantiationException | IllegalAccessException e ) - { - throw new RuntimeException( e ); - } + return valueType.newInstance(); + } + catch ( InstantiationException | IllegalAccessException e ) + { + throw new RuntimeException( e ); } }; } @@ -141,37 +137,16 @@ public V newInstance() */ public static Factory> nested( Class keyClass, final Factory nested ) { - return new Factory>() - { - @Override - public Map newInstance() - { - return new AutoCreatingHashMap<>( nested ); - } - }; + return () -> new AutoCreatingHashMap<>( nested ); } public static Factory dontCreate() { - return new Factory() - { - @Override - public V newInstance() - { - return null; - } - }; + return () -> null; } public static Factory> valuesOfTypeHashSet() { - return new Factory>() - { - @Override - public Set newInstance() - { - return new HashSet<>(); - } - }; + return () -> new HashSet<>(); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/LazySingleReferenceTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/LazySingleReferenceTest.java index bb0c7cea19c1c..7303a6049801b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/LazySingleReferenceTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/LazySingleReferenceTest.java @@ -167,26 +167,15 @@ public void after() private WorkerCommand evaluate( final LazySingleReference ref ) { - return new WorkerCommand() - { - @Override - public Integer doWork( Void state ) throws Exception - { - return ref.get(); - } - }; + return state -> ref.get(); } private WorkerCommand invalidate( final LazySingleReference ref ) { - return new WorkerCommand() + return state -> { - @Override - public Void doWork( Void state ) throws Exception - { - ref.invalidate(); - return null; - } + ref.invalidate(); + return null; }; } } diff --git a/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java b/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java index 124db0c243704..d30838930baf8 100644 --- a/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java +++ b/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java @@ -51,14 +51,7 @@ public OnDemandJobScheduler( boolean removeJobsAfterExecution ) @Override public Executor executor( Group group ) { - return new Executor() - { - @Override - public void execute( Runnable command ) - { - jobs.add( command ); - } - }; + return command -> jobs.add( command ); } @Override diff --git a/community/kernel/src/test/java/org/neo4j/test/StreamConsumer.java b/community/kernel/src/test/java/org/neo4j/test/StreamConsumer.java index aae4489f6e638..ac47edf26f10a 100644 --- a/community/kernel/src/test/java/org/neo4j/test/StreamConsumer.java +++ b/community/kernel/src/test/java/org/neo4j/test/StreamConsumer.java @@ -38,21 +38,10 @@ public interface StreamExceptionHandler void handle( IOException failure ); } - public static StreamExceptionHandler PRINT_FAILURES = new StreamExceptionHandler() - { - @Override - public void handle( IOException failure ) - { - failure.printStackTrace(); - } - }; + public static StreamExceptionHandler PRINT_FAILURES = failure -> failure.printStackTrace(); - public static StreamExceptionHandler IGNORE_FAILURES = new StreamExceptionHandler() + public static StreamExceptionHandler IGNORE_FAILURES = failure -> { - @Override - public void handle( IOException failure ) - { - } }; private final BufferedReader in; diff --git a/community/kernel/src/test/java/org/neo4j/test/mockito/mock/GraphMock.java b/community/kernel/src/test/java/org/neo4j/test/mockito/mock/GraphMock.java index c4d56704968bd..7667267597f09 100644 --- a/community/kernel/src/test/java/org/neo4j/test/mockito/mock/GraphMock.java +++ b/community/kernel/src/test/java/org/neo4j/test/mockito/mock/GraphMock.java @@ -116,14 +116,7 @@ public static Path path( Node node, Link... links ) private static Answer> withIteratorOf( final Iterable iterable ) { - return new Answer>() - { - @Override - public Iterator answer( InvocationOnMock invocation ) throws Throwable - { - return iterable.iterator(); - } - }; + return invocation -> iterable.iterator(); } private static Node mockNode( long id, Label[] labels, Properties properties ) diff --git a/community/kernel/src/test/java/org/neo4j/test/rule/CleanupRule.java b/community/kernel/src/test/java/org/neo4j/test/rule/CleanupRule.java index 3cf7a3b532acb..e7dae28848426 100644 --- a/community/kernel/src/test/java/org/neo4j/test/rule/CleanupRule.java +++ b/community/kernel/src/test/java/org/neo4j/test/rule/CleanupRule.java @@ -102,19 +102,15 @@ public T add( T toClose ) private AutoCloseable closeable( final Method method, final Object target ) { - return new AutoCloseable() + return () -> { - @Override - public void close() throws IOException + try + { + method.invoke( target ); + } + catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) { - try - { - method.invoke( target ); - } - catch ( IllegalAccessException | IllegalArgumentException | InvocationTargetException e ) - { - throw new RuntimeException( e ); - } + throw new RuntimeException( e ); } }; } diff --git a/community/kernel/src/test/java/org/neo4j/test/rule/concurrent/ThreadRepository.java b/community/kernel/src/test/java/org/neo4j/test/rule/concurrent/ThreadRepository.java index 2678cab99e1cb..3ff627487e5b8 100644 --- a/community/kernel/src/test/java/org/neo4j/test/rule/concurrent/ThreadRepository.java +++ b/community/kernel/src/test/java/org/neo4j/test/rule/concurrent/ThreadRepository.java @@ -152,14 +152,7 @@ private Events() public Task trigger( final String event ) { - return new Task() - { - @Override - public void perform() throws Exception - { - collected.add( event ); - } - }; + return () -> collected.add( event ); } public void assertInOrder( String... events ) throws Exception diff --git a/community/kernel/src/test/java/org/neo4j/test/rule/dump/DumpProcessInformationRule.java b/community/kernel/src/test/java/org/neo4j/test/rule/dump/DumpProcessInformationRule.java index f334ae3d23a6e..5936b41c4591e 100644 --- a/community/kernel/src/test/java/org/neo4j/test/rule/dump/DumpProcessInformationRule.java +++ b/community/kernel/src/test/java/org/neo4j/test/rule/dump/DumpProcessInformationRule.java @@ -41,26 +41,12 @@ public interface Dump public static Dump localVm( final PrintStream out ) { - return new Dump() - { - @Override - public void dump() - { - DumpVmInformation.dumpVmInfo( out ); - } - }; + return () -> DumpVmInformation.dumpVmInfo( out ); } public static Dump otherVm( final Matcher processFilter, final File baseDir ) { - return new Dump() - { - @Override - public void dump() throws Exception - { - new DumpProcessInformation( NullLogProvider.getInstance(), baseDir ).doThreadDump( processFilter ); - } - }; + return () -> new DumpProcessInformation( NullLogProvider.getInstance(), baseDir ).doThreadDump( processFilter ); } private final ScheduledExecutorService executor = Executors.newScheduledThreadPool( 2 ); @@ -85,14 +71,10 @@ protected synchronized void before() throws Throwable if ( null == thunk ) { super.before(); - thunk = executor.schedule( new Callable() + thunk = executor.schedule( (Callable) () -> { - @Override - public Void call() throws Exception - { - dump(); - return null; - } + dump(); + return null; }, duration, timeUnit ); } else diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/NodeRelationshipCacheTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/NodeRelationshipCacheTest.java index 8ea5b51de04b8..a3f834da6201a 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/NodeRelationshipCacheTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/NodeRelationshipCacheTest.java @@ -469,17 +469,13 @@ public void shouldCacheMultipleDenseNodeRelationshipHeads() throws Exception } } AtomicInteger visitCount = new AtomicInteger(); - GroupVisitor visitor = new GroupVisitor() + GroupVisitor visitor = ( nodeId1, typeId, out, in, loop ) -> { - @Override - public long visit( long nodeId, int typeId, long out, long in, long loop ) - { - visitCount.incrementAndGet(); - assertEquals( firstRelationshipIds.get( Pair.of( typeId, OUTGOING ) ).longValue(), out ); - assertEquals( firstRelationshipIds.get( Pair.of( typeId, INCOMING ) ).longValue(), in ); - assertEquals( firstRelationshipIds.get( Pair.of( typeId, BOTH ) ).longValue(), loop ); - return 0; - } + visitCount.incrementAndGet(); + assertEquals( firstRelationshipIds.get( Pair.of( typeId, OUTGOING ) ).longValue(), out ); + assertEquals( firstRelationshipIds.get( Pair.of( typeId, INCOMING ) ).longValue(), in ); + assertEquals( firstRelationshipIds.get( Pair.of( typeId, BOTH ) ).longValue(), loop ); + return 0; }; cache.getFirstRel( nodeId, visitor ); diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapperTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapperTest.java index fec55be34cdc7..ac547944529c3 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapperTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/cache/idmapping/string/EncodingIdMapperTest.java @@ -457,49 +457,42 @@ public void shouldDetectCorrectDuplicateInputIdsWhereManyAccidentalInManyGroups( final int idsPerGroup = 20; int groups = 5; final AtomicReference group = new AtomicReference<>(); - InputIterable ids = SimpleInputIteratorWrapper.wrap( "source", new Iterable() + InputIterable ids = SimpleInputIteratorWrapper.wrap( "source", () -> new PrefetchingIterator() { + private int i; + @Override - public Iterator iterator() + protected Object fetchNextOrNull() { - return new PrefetchingIterator() + // Change group every id + if ( i % idsPerGroup == 0 ) { - private int i; - - @Override - protected Object fetchNextOrNull() + int groupId = i / idsPerGroup; + if ( groupId == groups ) { - // Change group every id - if ( i % idsPerGroup == 0 ) - { - int groupId = i / idsPerGroup; - if ( groupId == groups ) - { - return null; - } - group.set( new Group.Adapter( groupId, "Group " + groupId ) ); - } - try - { - // Let the first 10% in each group be accidental collisions with each other - // i.e. all first 10% in each group collides with all other first 10% in each group - if ( i % idsPerGroup < 2 ) - { // Let these colliding values encode into the same eId as well, - // so that they are definitely marked as collisions - encoder.useThisIdToEncodeNoMatterWhatComesIn( Long.valueOf( 1234567 ) ); - return Long.valueOf( i % idsPerGroup ); - } - - // The other 90% will be accidental collisions for something else - encoder.useThisIdToEncodeNoMatterWhatComesIn( Long.valueOf( 123456 - group.get().id() ) ); - return Long.valueOf( i ); - } - finally - { - i++; - } + return null; } - }; + group.set( new Group.Adapter( groupId, "Group " + groupId ) ); + } + try + { + // Let the first 10% in each group be accidental collisions with each other + // i.e. all first 10% in each group collides with all other first 10% in each group + if ( i % idsPerGroup < 2 ) + { // Let these colliding values encode into the same eId as well, + // so that they are definitely marked as collisions + encoder.useThisIdToEncodeNoMatterWhatComesIn( Long.valueOf( 1234567 ) ); + return Long.valueOf( i % idsPerGroup ); + } + + // The other 90% will be accidental collisions for something else + encoder.useThisIdToEncodeNoMatterWhatComesIn( Long.valueOf( 123456 - group.get().id() ) ); + return Long.valueOf( i ); + } + finally + { + i++; + } } } ); @@ -626,16 +619,10 @@ private IdMapper mapper( Encoder encoder, Factory radix, Monitor monitor, 1_000, processors, comparator ); } - private static final TrackerFactory RANDOM_TRACKER_FACTORY = new TrackerFactory() - { - @Override - public Tracker create( NumberArrayFactory arrayFactory, long size ) - { - return System.currentTimeMillis() % 2 == 0 + private static final TrackerFactory RANDOM_TRACKER_FACTORY = + ( arrayFactory, size ) -> System.currentTimeMillis() % 2 == 0 ? new IntTracker( arrayFactory.newIntArray( size, AbstractTracker.DEFAULT_VALUE ) ) : new LongTracker( arrayFactory.newLongArray( size, AbstractTracker.DEFAULT_VALUE ) ); - } - }; private class ValueGenerator implements InputIterable { @@ -708,14 +695,7 @@ Factory radix() @Override Factory data( final Random random ) { - return new Factory() - { - @Override - public Object newInstance() - { - return random.nextInt( 1_000_000_000 ); - } - }; + return () -> random.nextInt( 1_000_000_000 ); } }, LONGS_AS_STRINGS @@ -735,14 +715,7 @@ Factory radix() @Override Factory data( final Random random ) { - return new Factory() - { - @Override - public Object newInstance() - { - return String.valueOf( random.nextInt( 1_000_000_000 ) ); - } - }; + return () -> String.valueOf( random.nextInt( 1_000_000_000 ) ); } }, VERY_LONG_STRINGS diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/executor/DynamicTaskExecutorTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/executor/DynamicTaskExecutorTest.java index 959d73b029525..965587cafea35 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/executor/DynamicTaskExecutorTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/executor/DynamicTaskExecutorTest.java @@ -263,14 +263,10 @@ public void shouldLetShutdownCompleteInEventOfPanic() throws Exception // WHEN try ( OtherThreadExecutor closer = new OtherThreadExecutor<>( "closer", null ) ) { - Future shutdown = closer.executeDontWait( new WorkerCommand() + Future shutdown = closer.executeDontWait( state -> { - @Override - public Void doWork( Void state ) throws Exception - { - executor.close(); - return null; - } + executor.close(); + return null; } ); while ( !closer.waitUntilWaiting().isAt( DynamicTaskExecutor.class, "close" ) ) { diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/input/csv/InputGroupsDeserializerTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/input/csv/InputGroupsDeserializerTest.java index 459e380fa8ee2..6c9413d97fb93 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/input/csv/InputGroupsDeserializerTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/input/csv/InputGroupsDeserializerTest.java @@ -79,14 +79,10 @@ public void shouldBeAbleToAskForSourceInformationEvenBetweenTwoSources() throws @SuppressWarnings( "unchecked" ) InputEntityDeserializer result = mock( InputEntityDeserializer.class ); when( result.sourceDescription() ).thenReturn( String.valueOf( flips.get() ) ); - doAnswer( new Answer() + doAnswer( invocation -> { - @Override - public Void answer( InvocationOnMock invocation ) throws Throwable - { - stream.close(); - return null; - } + stream.close(); + return null; } ).when( result ).close(); return result; }, Validators.emptyValidator(), InputNode.class ); diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/ProcessorStepTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/ProcessorStepTest.java index aafb36e8f7cbf..d58f68de35ca4 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/ProcessorStepTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/ProcessorStepTest.java @@ -137,14 +137,10 @@ protected void process( Integer batch, BatchSender sender ) throws Throwable private WorkerCommand receive( final int processors, final ProcessorStep step ) { - return new WorkerCommand() + return state -> { - @Override - public Void doWork( Void state ) throws Exception - { - step.receive( processors, null ); - return null; - } + step.receive( processors, null ); + return null; }; } } diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessingTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessingTest.java index 970902d609edf..11556ef2124e5 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessingTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/staging/TicketedProcessingTest.java @@ -73,20 +73,16 @@ public void shouldReturnTicketsInOrder() throws Exception processing.processors( processorCount - processing.processors( 0 ) ); // WHEN - assertions = t2.execute( new WorkerCommand() + assertions = t2.execute( state -> { - @Override - public Void doWork( Void state ) throws Exception + for ( int i = 0; i < items; i++ ) { - for ( int i = 0; i < items; i++ ) - { - Integer next = processing.next(); - assertNotNull( next ); - assertEquals( i * 2, next.intValue() ); - } - assertNull( processing.next() ); - return null; + Integer next = processing.next(); + assertNotNull( next ); + assertEquals( i * 2, next.intValue() ); } + assertNull( processing.next() ); + return null; } ); for ( int i = 0; i < items; i++ ) { @@ -126,14 +122,10 @@ public void shouldNotBeAbleToSubmitTooFarAhead() throws Exception StringJob fifthJob = new StringJob( "5" ); fifthJob.latch.countDown(); - Future fifthSubmit = t2.execute( new WorkerCommand() + Future fifthSubmit = t2.execute( state -> { - @Override - public Void doWork( Void state ) throws Exception - { - processing.submit( fifthJob ); - return null; - } + processing.submit( fifthJob ); + return null; } ); t2.get().waitUntilThreadState( Thread.State.TIMED_WAITING, Thread.State.WAITING ); firstJob.latch.countDown(); diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/storage/PartitionedIndexStorage.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/storage/PartitionedIndexStorage.java index f36c6a72baaec..3e839c547166a 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/storage/PartitionedIndexStorage.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/storage/PartitionedIndexStorage.java @@ -50,14 +50,8 @@ */ public class PartitionedIndexStorage { - private static final Comparator FILE_COMPARATOR = new Comparator() - { - @Override - public int compare( File o1, File o2 ) - { - return NumberAwareStringComparator.INSTANCE.compare( o1.getName(), o2.getName() ); - } - }; + private static final Comparator FILE_COMPARATOR = + ( o1, o2 ) -> NumberAwareStringComparator.INSTANCE.compare( o1.getName(), o2.getName() ); private final DirectoryFactory directoryFactory; private final FileSystemAbstraction fileSystem; diff --git a/community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/legacy/WorkThread.java b/community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/legacy/WorkThread.java index 025223c09c043..a8a796b424fb1 100644 --- a/community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/legacy/WorkThread.java +++ b/community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/legacy/WorkThread.java @@ -94,46 +94,31 @@ public Future putIfAbsent( Node node, String key, Object value ) throws Ex public void add( final Node node, final String key, final Object value ) throws Exception { - execute( new WorkerCommand() + execute( (WorkerCommand) state -> { - @Override - public Void doWork( CommandState state ) - { - state.index.add( node, key, value ); - return null; - } + state.index.add( node, key, value ); + return null; } ); } public Future getOrCreate( final String key, final Object value, final Object initialValue ) throws Exception { - return executeDontWait( new WorkerCommand() + return executeDontWait( state -> { - @Override - public Node doWork( CommandState state ) + UniqueFactory.UniqueNodeFactory factory = new UniqueFactory.UniqueNodeFactory( state.index ) { - UniqueFactory.UniqueNodeFactory factory = new UniqueFactory.UniqueNodeFactory( state.index ) + @Override + protected void initialize( Node node, Map properties ) { - @Override - protected void initialize( Node node, Map properties ) - { - node.setProperty( key, initialValue ); - } - }; - return factory.getOrCreate( key, value ); - } + node.setProperty( key, initialValue ); + } + }; + return factory.getOrCreate( key, value ); } ); } public Object getProperty( final PropertyContainer entity, final String key ) throws Exception { - return execute( new WorkerCommand() - { - @Override - public Object doWork( CommandState state ) - { - return entity.getProperty( key ); - } - } ); + return execute( state -> entity.getProperty( key ) ); } } diff --git a/community/lucene-index/src/test/java/org/neo4j/index/recovery/UniqueIndexRecoveryTest.java b/community/lucene-index/src/test/java/org/neo4j/index/recovery/UniqueIndexRecoveryTest.java index 69b3a278c7f1e..ca6e46ff5914b 100644 --- a/community/lucene-index/src/test/java/org/neo4j/index/recovery/UniqueIndexRecoveryTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/index/recovery/UniqueIndexRecoveryTest.java @@ -162,22 +162,18 @@ private void restart( File newStore ) private File snapshot( final File path ) throws IOException { File snapshotDir = new File( path, "snapshot-" + new Random().nextInt() ); - FileUtils.copyRecursively( path, snapshotDir, new FileFilter() + FileUtils.copyRecursively( path, snapshotDir, pathName -> { - @Override - public boolean accept( File pathName ) + String subPath = pathName.getAbsolutePath().substring( path.getPath().length() ).replace( File.separatorChar, '/' ); + if ( "/store_lock".equals( subPath ) ) { - String subPath = pathName.getAbsolutePath().substring( path.getPath().length() ).replace( File.separatorChar, '/' ); - if ( "/store_lock".equals( subPath ) ) - { - return false; // since the db is running, exclude the 'store_lock' file - } - if ( subPath.startsWith( "/schema/index/lucene/" ) || subPath.startsWith( "/schema/label/lucene/" ) ) - { - return !subPath.endsWith( "/write.lock" ); // since the db is running, exclude lucene lock files - } - return true; + return false; // since the db is running, exclude the 'store_lock' file } + if ( subPath.startsWith( "/schema/index/lucene/" ) || subPath.startsWith( "/schema/label/lucene/" ) ) + { + return !subPath.endsWith( "/write.lock" ); // since the db is running, exclude lucene lock files + } + return true; } ); return snapshotDir; } diff --git a/community/lucene-index/src/test/java/org/neo4j/index/timeline/TestTimeline.java b/community/lucene-index/src/test/java/org/neo4j/index/timeline/TestTimeline.java index 7618c53c0d96a..12910d6b51178 100644 --- a/community/lucene-index/src/test/java/org/neo4j/index/timeline/TestTimeline.java +++ b/community/lucene-index/src/test/java/org/neo4j/index/timeline/TestTimeline.java @@ -132,14 +132,8 @@ private Pair createTimestampedEntity( EntityCreator sortedEntities( LinkedList> timestamps, final boolean reversed ) { List> sorted = new ArrayList>( timestamps ); - sort( sorted, new Comparator>() - { - @Override - public int compare( Pair o1, Pair o2 ) - { - return !reversed ? o1.other().compareTo( o2.other() ) : o2.other().compareTo( o1.other() ); - } - } ); + sort( sorted, + ( o1, o2 ) -> !reversed ? o1.other().compareTo( o2.other() ) : o2.other().compareTo( o1.other() ) ); List result = new ArrayList(); for ( Pair timestamp : sorted ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java index aaade4f2b9f30..f1035fc724736 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java @@ -237,14 +237,10 @@ public void shouldStopSamplingWhenIndexIsDropped() throws Exception IndexReader indexReader = accessor.newReader(); // needs to be acquired before drop() is called IndexSampler indexSampler = indexReader.createSampler(); - Future drop = threading.executeAndAwait( new IOFunction() + Future drop = threading.executeAndAwait( (IOFunction) nothing -> { - @Override - public Void apply( Void nothing ) throws IOException - { - accessor.drop(); - return nothing; - } + accessor.drop(); + return nothing; }, null, waitingWhileIn( TaskCoordinator.class, "awaitCompletion" ), 3, SECONDS ); try ( IndexReader reader = indexReader /* do not inline! */ ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneIndexRecoveryIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneIndexRecoveryIT.java index 25b4ff6c402a7..ec0d81c5b24ed 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneIndexRecoveryIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneIndexRecoveryIT.java @@ -227,14 +227,10 @@ private void killDb() throws Exception { if ( db != null ) { - fs.snapshot( new Runnable() + fs.snapshot( () -> { - @Override - public void run() - { - db.shutdown(); - db = null; - } + db.shutdown(); + db = null; } ); } } diff --git a/community/neo4j/src/test/java/visibility/TestDatasourceCommitOrderDataVisibility.java b/community/neo4j/src/test/java/visibility/TestDatasourceCommitOrderDataVisibility.java index 0f4152b22d2e5..2865f83ba9747 100644 --- a/community/neo4j/src/test/java/visibility/TestDatasourceCommitOrderDataVisibility.java +++ b/community/neo4j/src/test/java/visibility/TestDatasourceCommitOrderDataVisibility.java @@ -89,21 +89,17 @@ private void assertNodeIsNotIndexedOutsideThisTransaction() throws Exception { final Collection problems = new HashSet<>(); - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() + try ( Transaction ignored = graphDatabaseService.beginTx() ) { - try ( Transaction ignored = graphDatabaseService.beginTx() ) - { - assertThat( - graphDatabaseService.index().forNodes( INDEX_NAME ).get( INDEX_KEY, INDEX_VALUE ).size(), - is( 0 ) ); - } - catch ( Throwable t ) - { - problems.add( new Exception( t ) ); - } + assertThat( + graphDatabaseService.index().forNodes( INDEX_NAME ).get( INDEX_KEY, INDEX_VALUE ).size(), + is( 0 ) ); + } + catch ( Throwable t ) + { + problems.add( new Exception( t ) ); } } ); thread.start(); @@ -119,19 +115,15 @@ private void assertNodeIsUnchangedOutsideThisTransaction( final Node commonNode { final Collection problems = new HashSet<>(); - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() + try ( Transaction ignored = graphDatabaseService.beginTx() ) + { + assertThat( commonNode.hasProperty( PROPERTY_NAME ), is( false ) ); + } + catch ( Throwable t ) { - try ( Transaction ignored = graphDatabaseService.beginTx() ) - { - assertThat( commonNode.hasProperty( PROPERTY_NAME ), is( false ) ); - } - catch ( Throwable t ) - { - problems.add( new Exception( t ) ); - } + problems.add( new Exception( t ) ); } } ); thread.start(); @@ -147,21 +139,17 @@ private void assertNodeIsIndexed( final Node commonNode ) throws Exception { final Collection problems = new HashSet<>(); - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() + try ( Transaction ignored = graphDatabaseService.beginTx() ) { - try ( Transaction ignored = graphDatabaseService.beginTx() ) - { - Node node = graphDatabaseService.index().forNodes( INDEX_NAME ).get( INDEX_KEY, INDEX_VALUE ) - .getSingle(); - assertThat( node, is( commonNode ) ); - } - catch ( Throwable t ) - { - problems.add( new Exception( t ) ); - } + Node node = graphDatabaseService.index().forNodes( INDEX_NAME ).get( INDEX_KEY, INDEX_VALUE ) + .getSingle(); + assertThat( node, is( commonNode ) ); + } + catch ( Throwable t ) + { + problems.add( new Exception( t ) ); } } ); thread.start(); @@ -177,19 +165,15 @@ private void assertNodeHasBeenUpdated( final Node commonNode ) throws Exception { final Collection problems = new HashSet<>(); - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() + try ( Transaction ignored = graphDatabaseService.beginTx() ) + { + assertThat( commonNode.getProperty( PROPERTY_NAME ), is( PROPERTY_VALUE ) ); + } + catch ( Throwable t ) { - try ( Transaction ignored = graphDatabaseService.beginTx() ) - { - assertThat( commonNode.getProperty( PROPERTY_NAME ), is( PROPERTY_VALUE ) ); - } - catch ( Throwable t ) - { - problems.add( new Exception( t ) ); - } + problems.add( new Exception( t ) ); } } ); thread.start(); diff --git a/community/primitive-collections/src/main/java/org/neo4j/collection/primitive/hopscotch/HopScotchHashingAlgorithm.java b/community/primitive-collections/src/main/java/org/neo4j/collection/primitive/hopscotch/HopScotchHashingAlgorithm.java index 2c628bed147cc..a4170c01adcc3 100644 --- a/community/primitive-collections/src/main/java/org/neo4j/collection/primitive/hopscotch/HopScotchHashingAlgorithm.java +++ b/community/primitive-collections/src/main/java/org/neo4j/collection/primitive/hopscotch/HopScotchHashingAlgorithm.java @@ -393,15 +393,11 @@ public interface HashFunction * It performs exceptionally poorly for sequences of numbers, as the sequence increments all end up in the same * stripe, generating hash values that will end up in the same buckets in collections. */ - public static final HashFunction JUL_HASHING = new HashFunction() + public static final HashFunction JUL_HASHING = value -> { - @Override - public int hash( long value ) - { - int h = (int) ((value >>> 32) ^ value); - h ^= (h >>> 20) ^ (h >>> 12); - return h ^ (h >>> 7) ^ (h >>> 4); - } + int h = (int) ((value >>> 32) ^ value); + h ^= (h >>> 20) ^ (h >>> 12); + return h ^ (h >>> 7) ^ (h >>> 4); }; /** @@ -409,17 +405,13 @@ public int hash( long value ) * to the generator. This is very fast, and performs well for most input data. However, it is not guaranteed to * generate a superb distribution, only a "decent" one. */ - public static final HashFunction DEFAULT_HASHING = new HashFunction() + public static final HashFunction DEFAULT_HASHING = value -> { - @Override - public int hash( long value ) - { - value ^= value << 21; - value ^= value >>> 35; - value ^= value << 4; + value ^= value << 21; + value ^= value >>> 35; + value ^= value << 4; - return (int) ((value >>> 32) ^ value); - } + return (int) ((value >>> 32) ^ value); }; public interface ResizeMonitor diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/pool/MarshlandPoolTest.java b/community/primitive-collections/src/test/java/org/neo4j/collection/pool/MarshlandPoolTest.java index ca3aedc52d46d..12926c3e8c82f 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/pool/MarshlandPoolTest.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/pool/MarshlandPoolTest.java @@ -112,14 +112,10 @@ private void assertPoolEventuallyReturns( Pool pool, int expected ) thro private void claimAndReleaseInSeparateThread( final MarshlandPool pool ) throws InterruptedException { - Thread thread = new Thread( new Runnable() + Thread thread = new Thread( () -> { - @Override - public void run() - { - Object obj = pool.acquire(); - pool.release( obj ); - } + Object obj = pool.acquire(); + pool.release( obj ); } ); thread.start(); thread.join(); diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/PrimitiveLongCollectionsTest.java b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/PrimitiveLongCollectionsTest.java index a34eb6a17ed34..1c901c0f9b93d 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/PrimitiveLongCollectionsTest.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/PrimitiveLongCollectionsTest.java @@ -392,14 +392,7 @@ public void singleWithDefaultMustAutoCloseEmptyIterator() public void itemAt() throws Exception { // GIVEN - PrimitiveLongIterable items = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 10, 20, 30 ); - } - }; + PrimitiveLongIterable items = () -> PrimitiveLongCollections.iterator( 10, 20, 30 ); // THEN try @@ -432,14 +425,7 @@ public PrimitiveLongIterator iterator() public void itemAtWithDefault() throws Exception { // GIVEN - PrimitiveLongIterable items = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 10, 20, 30 ); - } - }; + PrimitiveLongIterable items = () -> PrimitiveLongCollections.iterator( 10, 20, 30 ); long defaultValue = 55; // THEN @@ -457,14 +443,7 @@ public PrimitiveLongIterator iterator() public void indexOf() throws Exception { // GIVEN - PrimitiveLongIterable items = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 10, 20, 30 ); - } - }; + PrimitiveLongIterable items = () -> PrimitiveLongCollections.iterator( 10, 20, 30 ); // THEN assertEquals( -1, PrimitiveLongCollections.indexOf( items.iterator(), 55 ) ); @@ -477,38 +456,10 @@ public PrimitiveLongIterator iterator() public void iteratorsEqual() throws Exception { // GIVEN - PrimitiveLongIterable items1 = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 1, 2, 3 ); - } - }; - PrimitiveLongIterable items2 = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 1, 20, 3 ); - } - }; - PrimitiveLongIterable items3 = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 1, 2, 3, 4 ); - } - }; - PrimitiveLongIterable items4 = new PrimitiveLongIterable() - { - @Override - public PrimitiveLongIterator iterator() - { - return PrimitiveLongCollections.iterator( 1, 2, 3 ); - } - }; + PrimitiveLongIterable items1 = () -> PrimitiveLongCollections.iterator( 1, 2, 3 ); + PrimitiveLongIterable items2 = () -> PrimitiveLongCollections.iterator( 1, 20, 3 ); + PrimitiveLongIterable items3 = () -> PrimitiveLongCollections.iterator( 1, 2, 3, 4 ); + PrimitiveLongIterable items4 = () -> PrimitiveLongCollections.iterator( 1, 2, 3 ); // THEN assertFalse( PrimitiveLongCollections.equals( items1.iterator(), items2.iterator() ) ); diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongIntMapRIT.java b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongIntMapRIT.java index ff40d1235159a..ea2713a2d3e8e 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongIntMapRIT.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongIntMapRIT.java @@ -90,39 +90,18 @@ private void fullVerification( Maps target, Random random ) private Printable given() { - return new Printable() - { - @Override - public void print( LinePrinter out ) - { - out.println( PrimitiveLongIntMap.class.getSimpleName() + " map = " + - Primitive.class.getSimpleName() + ".longIntMap();" ); - } - }; + return out -> out.println( PrimitiveLongIntMap.class.getSimpleName() + " map = " + + Primitive.class.getSimpleName() + ".longIntMap();" ); } private ActionFactory actionFactory( final Random random ) { - return new ActionFactory() - { - @Override - public Action apply( Maps from ) - { - return generateAction( random, from ); - } - }; + return from -> generateAction( random, from ); } private TargetFactory mapFactory() { - return new TargetFactory() - { - @Override - public Maps newInstance() - { - return new Maps(); - } - }; + return () -> new Maps(); } protected Action generateAction( Random random, Maps from ) diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongObjectMapRIT.java b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongObjectMapRIT.java index f5c7efb8749f3..d6a42423c10ec 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongObjectMapRIT.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongObjectMapRIT.java @@ -90,39 +90,18 @@ private void fullVerification( Maps target, Random random ) private Printable given() { - return new Printable() - { - @Override - public void print( LinePrinter out ) - { - out.println( PrimitiveLongObjectMap.class.getSimpleName() + " map = " + - Primitive.class.getSimpleName() + ".longObjectMap();" ); - } - }; + return out -> out.println( PrimitiveLongObjectMap.class.getSimpleName() + " map = " + + Primitive.class.getSimpleName() + ".longObjectMap();" ); } private ActionFactory actionFactory( final Random random ) { - return new ActionFactory() - { - @Override - public Action apply( Maps from ) - { - return generateAction( random, from ); - } - }; + return from -> generateAction( random, from ); } private TargetFactory mapFactory() { - return new TargetFactory() - { - @Override - public Maps newInstance() - { - return new Maps(); - } - }; + return () -> new Maps(); } protected Action generateAction( Random random, Maps from ) diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetRIT.java b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetRIT.java index a70decd39124b..07d097b256459 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetRIT.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetRIT.java @@ -87,39 +87,18 @@ private void fullVerification( Sets target, Random random ) private Printable given() { - return new Printable() - { - @Override - public void print( LinePrinter out ) - { - out.println( PrimitiveLongSet.class.getSimpleName() + " set = " + - Primitive.class.getSimpleName() + ".longSet();" ); - } - }; + return out -> out.println( PrimitiveLongSet.class.getSimpleName() + " set = " + + Primitive.class.getSimpleName() + ".longSet();" ); } private ActionFactory actionFactory( final Random random ) { - return new ActionFactory() - { - @Override - public Action apply( Sets from ) - { - return generateAction( random, from ); - } - }; + return from -> generateAction( random, from ); } private TargetFactory setFactory() { - return new TargetFactory() - { - @Override - public Sets newInstance() - { - return new Sets(); - } - }; + return () -> new Sets(); } protected Action generateAction( Random random, Sets from ) diff --git a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetTest.java b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetTest.java index 3ea28d3db49f1..86987d360e02c 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetTest.java +++ b/community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetTest.java @@ -100,14 +100,10 @@ public void shouldContainAddedValues_generated_1() throws Exception expectedValues.add( 679990875L ); final Set visitedKeys = new HashSet<>(); - set.visitKeys( new PrimitiveLongVisitor() + set.visitKeys( value -> { - @Override - public boolean visited( long value ) - { - assertTrue( visitedKeys.add( value ) ); - return false; - } + assertTrue( visitedKeys.add( value ) ); + return false; } ); assertEquals( expectedValues, visitedKeys ); } @@ -389,14 +385,7 @@ public void longVisitorShouldNotSeeEntriesAfterRequestingBreakOut() final AtomicInteger counter = new AtomicInteger(); // WHEN - map.visitKeys( new PrimitiveIntVisitor() - { - @Override - public boolean visited( int value ) - { - return counter.incrementAndGet() > 2; - } - } ); + map.visitKeys( value -> counter.incrementAndGet() > 2 ); // THEN assertThat( counter.get(), is( 3 ) ); @@ -435,14 +424,7 @@ public void intVisitorShouldNotSeeEntriesAfterRequestingBreakOut() final AtomicInteger counter = new AtomicInteger(); // WHEN - map.visitKeys( new PrimitiveIntVisitor() - { - @Override - public boolean visited( int value ) - { - return counter.incrementAndGet() > 2; - } - } ); + map.visitKeys( value -> counter.incrementAndGet() > 2 ); // THEN assertThat( counter.get(), is( 3 ) ); diff --git a/community/primitive-collections/src/test/java/org/neo4j/concurrent/BinaryLatchTest.java b/community/primitive-collections/src/test/java/org/neo4j/concurrent/BinaryLatchTest.java index e7e8b9a5e79da..714b2ba11d220 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/concurrent/BinaryLatchTest.java +++ b/community/primitive-collections/src/test/java/org/neo4j/concurrent/BinaryLatchTest.java @@ -54,14 +54,7 @@ public void releaseThenAwaitDoesNotBlock() throws Exception public void releaseMustUnblockAwaiters() throws Exception { final BinaryLatch latch = new BinaryLatch(); - Runnable awaiter = new Runnable() - { - @Override - public void run() - { - latch.await(); - } - }; + Runnable awaiter = () -> latch.await(); int awaiters = 24; Future[] futures = new Future[awaiters]; for ( int i = 0; i < awaiters; i++ ) @@ -91,16 +84,12 @@ public void run() public void stressLatch() throws Exception { final AtomicReference latchRef = new AtomicReference<>( new BinaryLatch() ); - Runnable awaiter = new Runnable() + Runnable awaiter = () -> { - @Override - public void run() + BinaryLatch latch; + while ( (latch = latchRef.get()) != null ) { - BinaryLatch latch; - while ( (latch = latchRef.get()) != null ) - { - latch.await(); - } + latch.await(); } }; diff --git a/community/primitive-collections/src/test/java/org/neo4j/concurrent/FuturesTest.java b/community/primitive-collections/src/test/java/org/neo4j/concurrent/FuturesTest.java index b0d788e556921..37c95c5451d6f 100644 --- a/community/primitive-collections/src/test/java/org/neo4j/concurrent/FuturesTest.java +++ b/community/primitive-collections/src/test/java/org/neo4j/concurrent/FuturesTest.java @@ -33,12 +33,8 @@ public class FuturesTest { - private static final Runnable NOOP = new Runnable() + private static final Runnable NOOP = () -> { - @Override - public void run() - { - } }; @Test diff --git a/community/server-api/src/main/java/org/neo4j/server/rest/repr/ListRepresentation.java b/community/server-api/src/main/java/org/neo4j/server/rest/repr/ListRepresentation.java index 114f838f41058..187adbb7bfbc8 100644 --- a/community/server-api/src/main/java/org/neo4j/server/rest/repr/ListRepresentation.java +++ b/community/server-api/src/main/java/org/neo4j/server/rest/repr/ListRepresentation.java @@ -120,12 +120,8 @@ protected Representation underlyingObjectToObject( RelationshipType value ) public static ListRepresentation numbers( final long... values ) { - return new ListRepresentation( RepresentationType.LONG, new Iterable() - { - @Override - public Iterator iterator() - { - return new PrefetchingIterator() + return new ListRepresentation( RepresentationType.LONG, (Iterable) () -> + new PrefetchingIterator() { int pos; @@ -138,33 +134,24 @@ protected ValueRepresentation fetchNextOrNull() } return ValueRepresentation.number( values[pos++] ); } - }; - } - } ); + } ); } public static ListRepresentation numbers( final double[] values ) { return new ListRepresentation( RepresentationType.DOUBLE, - new Iterable() + (Iterable) () -> new PrefetchingIterator() { + int pos; + @Override - public Iterator iterator() + protected ValueRepresentation fetchNextOrNull() { - return new PrefetchingIterator() + if ( pos >= values.length ) { - int pos; - - @Override - protected ValueRepresentation fetchNextOrNull() - { - if ( pos >= values.length ) - { - return null; - } - return ValueRepresentation.number( values[pos++] ); - } - }; + return null; + } + return ValueRepresentation.number( values[pos++] ); } } ); } diff --git a/community/server-plugin-test/src/test/java/org/neo4j/server/plugins/GraphCloner.java b/community/server-plugin-test/src/test/java/org/neo4j/server/plugins/GraphCloner.java index 0e19bc2010c36..5d5796d12dc50 100644 --- a/community/server-plugin-test/src/test/java/org/neo4j/server/plugins/GraphCloner.java +++ b/community/server-plugin-test/src/test/java/org/neo4j/server/plugins/GraphCloner.java @@ -100,20 +100,15 @@ private Traverser traverseToDepth( GraphDatabaseService graphDb, final Node star TraversalDescription traversalDescription = graphDb.traversalDescription() .expand( PathExpanders.allTypesAndDirections() ) .depthFirst() - .evaluator( new Evaluator() + .evaluator( path -> { - - @Override - public Evaluation evaluate( Path path ) + if ( path.length() < depth ) + { + return Evaluation.INCLUDE_AND_CONTINUE; + } + else { - if ( path.length() < depth ) - { - return Evaluation.INCLUDE_AND_CONTINUE; - } - else - { - return Evaluation.INCLUDE_AND_PRUNE; - } + return Evaluation.INCLUDE_AND_PRUNE; } } ); diff --git a/community/server/src/main/java/org/neo4j/server/exception/ServerStartupErrors.java b/community/server/src/main/java/org/neo4j/server/exception/ServerStartupErrors.java index e411b51ee5ac9..4101a537decd5 100644 --- a/community/server/src/main/java/org/neo4j/server/exception/ServerStartupErrors.java +++ b/community/server/src/main/java/org/neo4j/server/exception/ServerStartupErrors.java @@ -43,10 +43,7 @@ private ServerStartupErrors() */ private static final Function[] translators = new Function[] { // Handle upgrade errors - new Function() - { - @Override - public ServerStartupException apply( Throwable o ) + (Function) o -> { Throwable rootCause = Exceptions.rootCause( o ); if ( rootCause instanceof UpgradeNotAllowedException ) @@ -55,7 +52,6 @@ public ServerStartupException apply( Throwable o ) } return null; } - } }; public static ServerStartupException translateToServerStartupError( Throwable cause ) diff --git a/community/server/src/main/java/org/neo4j/server/rest/repr/OutputFormat.java b/community/server/src/main/java/org/neo4j/server/rest/repr/OutputFormat.java index 3126a3a5fc79e..c39acaaed4f26 100644 --- a/community/server/src/main/java/org/neo4j/server/rest/repr/OutputFormat.java +++ b/community/server/src/main/java/org/neo4j/server/rest/repr/OutputFormat.java @@ -180,36 +180,33 @@ private ResponseBuilder formatRepresentation( ResponseBuilder response, final Re private Object stream( final Representation representation, final StreamingFormat streamingFormat, final boolean mustFail ) { - return new StreamingOutput() + return (StreamingOutput) output -> { - public void write( OutputStream output ) throws IOException, WebApplicationException + RepresentationFormat outputStreamFormat = streamingFormat.writeTo( output ); + try { - RepresentationFormat outputStreamFormat = streamingFormat.writeTo( output ); - try - { - representation.serialize( outputStreamFormat, baseUri, extensions ); + representation.serialize( outputStreamFormat, baseUri, extensions ); - if ( !mustFail ) - { - representationWriteHandler.onRepresentationWritten(); - } + if ( !mustFail ) + { + representationWriteHandler.onRepresentationWritten(); } - catch ( Exception e ) + } + catch ( Exception e ) + { + if ( e instanceof NodeNotFoundException || e instanceof RelationshipNotFoundException ) { - if ( e instanceof NodeNotFoundException || e instanceof RelationshipNotFoundException ) - { - throw new WebApplicationException( notFound( e ) ); - } - if ( e instanceof BadInputException ) - { - throw new WebApplicationException( badRequest( e ) ); - } - throw new WebApplicationException( e, serverError( e ) ); + throw new WebApplicationException( notFound( e ) ); } - finally + if ( e instanceof BadInputException ) { - representationWriteHandler.onRepresentationFinal(); + throw new WebApplicationException( badRequest( e ) ); } + throw new WebApplicationException( e, serverError( e ) ); + } + finally + { + representationWriteHandler.onRepresentationFinal(); } }; } diff --git a/community/server/src/main/java/org/neo4j/server/rest/transactional/TransactionFilter.java b/community/server/src/main/java/org/neo4j/server/rest/transactional/TransactionFilter.java index 239508fcb81f6..f839d0b60a66b 100644 --- a/community/server/src/main/java/org/neo4j/server/rest/transactional/TransactionFilter.java +++ b/community/server/src/main/java/org/neo4j/server/rest/transactional/TransactionFilter.java @@ -49,16 +49,12 @@ public Void getValue( HttpContext httpContext ) @Override public ResourceMethodDispatchProvider adapt( final ResourceMethodDispatchProvider resourceMethodDispatchProvider ) { - return new ResourceMethodDispatchProvider() + return abstractResourceMethod -> { - @Override - public RequestDispatcher create( AbstractResourceMethod abstractResourceMethod ) - { - final RequestDispatcher requestDispatcher = resourceMethodDispatchProvider.create( - abstractResourceMethod ); + final RequestDispatcher requestDispatcher = resourceMethodDispatchProvider.create( + abstractResourceMethod ); - return new TransactionalRequestDispatcher( database, requestDispatcher ); - } + return new TransactionalRequestDispatcher( database, requestDispatcher ); }; } } diff --git a/community/server/src/main/java/org/neo4j/server/rest/web/BatchOperationService.java b/community/server/src/main/java/org/neo4j/server/rest/web/BatchOperationService.java index 340c49e27137a..13bc33de69991 100644 --- a/community/server/src/main/java/org/neo4j/server/rest/web/BatchOperationService.java +++ b/community/server/src/main/java/org/neo4j/server/rest/web/BatchOperationService.java @@ -91,52 +91,48 @@ private Response batchProcessAndStream( final UriInfo uriInfo, final HttpHeaders { try { - final StreamingOutput stream = new StreamingOutput() + final StreamingOutput stream = output -> { - @Override - public void write( final OutputStream output ) throws IOException, WebApplicationException + try { - try + final ServletOutputStream servletOutputStream = new ServletOutputStream() { - final ServletOutputStream servletOutputStream = new ServletOutputStream() + @Override + public void write( int i ) throws IOException { - @Override - public void write( int i ) throws IOException - { - output.write( i ); - } + output.write( i ); + } + + @Override + public boolean isReady() + { + return true; + } - @Override - public boolean isReady() + @Override + public void setWriteListener( WriteListener writeListener ) + { + try { - return true; + writeListener.onWritePossible(); } - - @Override - public void setWriteListener( WriteListener writeListener ) + catch ( IOException e ) { - try - { - writeListener.onWritePossible(); - } - catch ( IOException e ) - { - // Ignore - } + // Ignore } - }; - new StreamingBatchOperations( webServer ).readAndExecuteOperations( uriInfo, httpHeaders, req, - body, servletOutputStream ); - representationWriteHandler.onRepresentationWritten(); - } - catch ( Exception e ) - { - LOGGER.warn( "Error executing batch request ", e ); - } - finally - { - representationWriteHandler.onRepresentationFinal(); - } + } + }; + new StreamingBatchOperations( webServer ).readAndExecuteOperations( uriInfo, httpHeaders, req, + body, servletOutputStream ); + representationWriteHandler.onRepresentationWritten(); + } + catch ( Exception e ) + { + LOGGER.warn( "Error executing batch request ", e ); + } + finally + { + representationWriteHandler.onRepresentationFinal(); } }; return Response.ok(stream) diff --git a/community/server/src/main/java/org/neo4j/server/rest/web/DatabaseActions.java b/community/server/src/main/java/org/neo4j/server/rest/web/DatabaseActions.java index b90db0e9645a4..78cdbb8538e93 100644 --- a/community/server/src/main/java/org/neo4j/server/rest/web/DatabaseActions.java +++ b/community/server/src/main/java/org/neo4j/server/rest/web/DatabaseActions.java @@ -229,14 +229,8 @@ public void deleteNode( long nodeId ) throws NodeNotFoundException, ConstraintVi public Representation getAllPropertyKeys() { - Collection propKeys = Iterables.asSet( map( new Function() - { - @Override - public ValueRepresentation apply( String key ) - { - return ValueRepresentation.string( key ); - } - }, graphDb.getAllPropertyKeys() ) ); + Collection propKeys = + Iterables.asSet( map( key -> ValueRepresentation.string( key ), graphDb.getAllPropertyKeys() ) ); return new ListRepresentation( RepresentationType.STRING, propKeys ); } @@ -1436,14 +1430,8 @@ protected NodeRepresentation underlyingObjectToObject( Node node ) public ListRepresentation getAllLabels( boolean inUse ) { ResourceIterable