diff --git a/community/io/src/test/java/org/neo4j/io/pagecache/PageSwapperTest.java b/community/io/src/test/java/org/neo4j/io/pagecache/PageSwapperTest.java index 205db1da0fb17..238dc4bdf6705 100644 --- a/community/io/src/test/java/org/neo4j/io/pagecache/PageSwapperTest.java +++ b/community/io/src/test/java/org/neo4j/io/pagecache/PageSwapperTest.java @@ -72,12 +72,27 @@ public abstract class PageSwapperTest protected static final int cachePageSize = 32; + public final TestDirectory testDir = TestDirectory.testDirectory(); + public final ExpectedException expectedException = ExpectedException.none(); + @Rule + public final RuleChain rules = RuleChain.outerRule( testDir ).around( expectedException ); + + private final ConcurrentLinkedQueue openedFactories = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue openedSwappers = new ConcurrentLinkedQueue<>(); + protected abstract PageSwapperFactory swapperFactory() throws Exception; protected abstract void mkdirs( File dir ) throws IOException; protected abstract File baseDirectory() throws IOException; + protected final PageSwapperFactory createSwapperFactory() throws Exception + { + PageSwapperFactory factory = swapperFactory(); + openedFactories.add( factory ); + return factory; + } + protected int cachePageSize() { return cachePageSize; @@ -137,13 +152,6 @@ private long sizeOf( ByteBufferPage page ) return page.size(); } - public final TestDirectory testDir = TestDirectory.testDirectory(); - public final ExpectedException expectedException = ExpectedException.none(); - @Rule - public final RuleChain rules = RuleChain.outerRule( testDir ).around( expectedException ); - - private final ConcurrentLinkedQueue openedSwappers = new ConcurrentLinkedQueue<>(); - @Before @After public void clearStrayInterrupts() @@ -152,10 +160,12 @@ public void clearStrayInterrupts() } @After - public void closeOpenedPageSwappers() throws IOException + public void closeOpenedPageSwappers() throws Exception { - IOException exception = null; + Exception exception = null; + PageSwapperFactory factory; PageSwapper swapper; + while ( (swapper = openedSwappers.poll()) != null ) { try @@ -174,6 +184,26 @@ public void closeOpenedPageSwappers() throws IOException } } } + + while ( (factory = openedFactories.poll()) != null ) + { + try + { + factory.close(); + } + catch ( Exception e ) + { + if ( exception == null ) + { + exception = e; + } + else + { + exception.addSuppressed( e ); + } + } + } + if ( exception != null ) { throw exception; @@ -187,7 +217,7 @@ public void readMustNotSwallowInterrupts() throws Exception ByteBufferPage page = createPage(); page.putInt( 1, 0 ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); assertThat( swapper.write( 0, page ), is( sizeOf( page ) ) ); @@ -210,7 +240,7 @@ public void vectoredReadMustNotSwallowInterrupts() throws Exception ByteBufferPage page = createPage(); page.putInt( 1, 0 ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); assertThat( swapper.write( 0, page ), is( sizeOf( page ) ) ); @@ -233,7 +263,7 @@ public void writeMustNotSwallowInterrupts() throws Exception ByteBufferPage page = createPage(); page.putInt( 1, 0 ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); Thread.currentThread().interrupt(); @@ -260,7 +290,7 @@ public void vectoredWriteMustNotSwallowInterrupts() throws Exception ByteBufferPage page = createPage(); page.putInt( 1, 0 ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); Thread.currentThread().interrupt(); @@ -285,7 +315,7 @@ public void forcingMustNotSwallowInterrupts() throws Exception { File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); Thread.currentThread().interrupt(); @@ -297,7 +327,7 @@ public void forcingMustNotSwallowInterrupts() throws Exception public void mustReopenChannelWhenReadFailsWithAsynchronousCloseException() throws Exception { File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); ByteBufferPage page = createPage(); @@ -325,7 +355,7 @@ public void mustReopenChannelWhenReadFailsWithAsynchronousCloseException() throw public void mustReopenChannelWhenVectoredReadFailsWithAsynchronousCloseException() throws Exception { File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); ByteBufferPage page = createPage(); @@ -358,7 +388,7 @@ public void mustReopenChannelWhenWriteFailsWithAsynchronousCloseException() thro page.putInt( Z, 16 ); File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); Thread.currentThread().interrupt(); @@ -387,7 +417,7 @@ public void mustReopenChannelWhenVectoredWriteFailsWithAsynchronousCloseExceptio page.putInt( Z, 16 ); File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); Thread.currentThread().interrupt(); @@ -412,7 +442,7 @@ public void mustReopenChannelWhenForceFailsWithAsynchronousCloseException() thro { File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); for ( int i = 0; i < 10; i++ ) @@ -434,7 +464,7 @@ public void readMustNotReopenExplicitlyClosedChannel() throws Exception File file = file( filename ); ByteBufferPage page = createPage(); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); swapper.write( 0, page ); swapper.close(); @@ -457,7 +487,7 @@ public void vectoredReadMustNotReopenExplicitlyClosedChannel() throws Exception File file = file( filename ); ByteBufferPage page = createPage(); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); swapper.write( 0, page ); swapper.close(); @@ -479,7 +509,7 @@ public void writeMustNotReopenExplicitlyClosedChannel() throws Exception File file = file( "a" ); ByteBufferPage page = createPage(); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); swapper.close(); @@ -500,7 +530,7 @@ public void vectoredWriteMustNotReopenExplicitlyClosedChannel() throws Exception File file = file( "a" ); ByteBufferPage page = createPage(); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); swapper.close(); @@ -520,7 +550,7 @@ public void forceMustNotReopenExplicitlyClosedChannel() throws Exception { File file = file( "a" ); - PageSwapperFactory swapperFactory = swapperFactory(); + PageSwapperFactory swapperFactory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( swapperFactory, file ); swapper.close(); @@ -540,7 +570,7 @@ public void mustNotOverwriteDataInOtherFiles() throws Exception { File fileA = file( "a" ); File fileB = file( "b" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapperA = createSwapperAndFile( factory, fileA ); PageSwapper swapperB = @@ -569,7 +599,7 @@ public void mustRunEvictionCallbackOnEviction() throws Exception callbackPage.set( page ); }; File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, file, cachePageSize(), callback, true ); Page page = createPage(); swapper.evicted( 42, page ); @@ -583,7 +613,7 @@ public void mustNotIssueEvictionCallbacksAfterSwapperHasBeenClosed() throws Exce final AtomicBoolean gotCallback = new AtomicBoolean(); PageEvictionCallback callback = ( filePageId, page ) -> gotCallback.set( true ); File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, file, cachePageSize(), callback, true ); Page page = createPage(); swapper.close(); @@ -594,7 +624,7 @@ public void mustNotIssueEvictionCallbacksAfterSwapperHasBeenClosed() throws Exce @Test public void mustThrowExceptionIfFileDoesNotExist() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); expectedException.expect( NoSuchFileException.class ); createSwapper( factory, file( "does not exist" ), cachePageSize(), NO_CALLBACK, false ); } @@ -602,7 +632,7 @@ public void mustThrowExceptionIfFileDoesNotExist() throws Exception @Test public void mustCreateNonExistingFileWithCreateFlag() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper pageSwapper = createSwapperAndFile( factory, file( "does not exist" ) ); // After creating the file, we must also be able to read and write @@ -620,7 +650,7 @@ public void mustCreateNonExistingFileWithCreateFlag() throws Exception public void truncatedFilesMustBeEmpty() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file ); assertThat( swapper.getLastPageId(), is( -1L ) ); @@ -660,7 +690,7 @@ public void truncatedFilesMustBeEmpty() throws Exception public void positionedVectoredWriteMustFlushAllBuffersInOrder() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage pageA = createPage( 4 ); @@ -700,7 +730,7 @@ public void positionedVectoredWriteMustFlushAllBuffersInOrder() throws Exception public void positionedVectoredReadMustFillAllBuffersInOrder() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage output = createPage(); @@ -732,7 +762,7 @@ public void positionedVectoredReadMustFillAllBuffersInOrder() throws Exception public void positionedVectoredReadFromEmptyFileMustFillPagesWithZeros() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage page = createPage( 4 ); @@ -745,7 +775,7 @@ public void positionedVectoredReadFromEmptyFileMustFillPagesWithZeros() throws E public void positionedVectoredReadBeyondEndOfFileMustFillPagesWithZeros() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage output = createPage( 4 ); @@ -765,7 +795,7 @@ public void positionedVectoredReadBeyondEndOfFileMustFillPagesWithZeros() throws public void positionedVectoredReadWhereLastPageExtendBeyondEndOfFileMustHaveRemainderZeroFilled() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage output = createPage( 4 ); @@ -787,7 +817,7 @@ public void positionedVectoredReadWhereLastPageExtendBeyondEndOfFileMustHaveRema public void positionedVectoredReadWhereSecondLastPageExtendBeyondEndOfFileMustHaveRestZeroFilled() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage output = createPage( 4 ); @@ -818,7 +848,7 @@ public void positionedVectoredReadWhereSecondLastPageExtendBeyondEndOfFileMustHa public void concurrentPositionedVectoredReadsAndWritesMustNotInterfere() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); final PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); final int pageCount = 100; final int iterations = 20000; @@ -891,7 +921,7 @@ public void concurrentPositionedVectoredReadsAndWritesMustNotInterfere() throws public void positionedVectoredReadMustWorkOnSubsequenceOfGivenArray() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage pageA = createPage( 4 ); @@ -925,7 +955,7 @@ public void positionedVectoredReadMustWorkOnSubsequenceOfGivenArray() throws Exc public void positionedVectoredWriteMustWorkOnSubsequenceOfGivenArray() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage pageA = createPage( 4 ); @@ -965,7 +995,7 @@ public void positionedVectoredWriteMustWorkOnSubsequenceOfGivenArray() throws Ex public void mustThrowNullPointerExceptionFromReadWhenPageArrayElementsAreNull() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage page = createPage( 4 ); @@ -987,7 +1017,7 @@ public void mustThrowNullPointerExceptionFromReadWhenPageArrayElementsAreNull() public void mustThrowNullPointerExceptionFromWriteWhenPageArrayElementsAreNull() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage page = createPage( 4 ); @@ -1007,7 +1037,7 @@ public void mustThrowNullPointerExceptionFromWriteWhenPageArrayElementsAreNull() public void mustThrowNullPointerExceptionFromReadWhenPageArrayIsNull() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage page = createPage( 4 ); @@ -1029,7 +1059,7 @@ public void mustThrowNullPointerExceptionFromReadWhenPageArrayIsNull() throws Ex public void mustThrowNullPointerExceptionFromWriteWhenPageArrayIsNull() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); try @@ -1047,7 +1077,7 @@ public void mustThrowNullPointerExceptionFromWriteWhenPageArrayIsNull() throws E public void readMustThrowForNegativeFilePageIds() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); expectedException.expect( IOException.class ); @@ -1058,7 +1088,7 @@ public void readMustThrowForNegativeFilePageIds() throws Exception public void writeMustThrowForNegativeFilePageIds() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); expectedException.expect( IOException.class ); @@ -1069,7 +1099,7 @@ public void writeMustThrowForNegativeFilePageIds() throws Exception public void vectoredReadMustThrowForNegativeFilePageIds() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); expectedException.expect( IOException.class ); @@ -1080,7 +1110,7 @@ public void vectoredReadMustThrowForNegativeFilePageIds() throws Exception public void vectoredWriteMustThrowForNegativeFilePageIds() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); expectedException.expect( IOException.class ); @@ -1091,7 +1121,7 @@ public void vectoredWriteMustThrowForNegativeFilePageIds() throws Exception public void vectoredReadMustThrowForNegativeArrayOffsets() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1104,7 +1134,7 @@ public void vectoredReadMustThrowForNegativeArrayOffsets() throws Exception public void vectoredWriteMustThrowForNegativeArrayOffsets() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1116,7 +1146,7 @@ public void vectoredWriteMustThrowForNegativeArrayOffsets() throws Exception public void vectoredReadMustThrowWhenLengthGoesBeyondArraySize() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1129,7 +1159,7 @@ public void vectoredReadMustThrowWhenLengthGoesBeyondArraySize() throws Exceptio public void vectoredWriteMustThrowWhenLengthGoesBeyondArraySize() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1141,7 +1171,7 @@ public void vectoredWriteMustThrowWhenLengthGoesBeyondArraySize() throws Excepti public void vectoredReadMustThrowWhenArrayOffsetIsEqualToArrayLength() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1154,7 +1184,7 @@ public void vectoredReadMustThrowWhenArrayOffsetIsEqualToArrayLength() throws Ex public void vectoredWriteMustThrowWhenArrayOffsetIsEqualToArrayLength() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1166,7 +1196,7 @@ public void vectoredWriteMustThrowWhenArrayOffsetIsEqualToArrayLength() throws E public void vectoredReadMustThrowWhenArrayOffsetIsGreaterThanArrayLength() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1179,7 +1209,7 @@ public void vectoredReadMustThrowWhenArrayOffsetIsGreaterThanArrayLength() throw public void vectoredWriteMustThrowWhenArrayOffsetIsGreaterThanArrayLength() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); Page[] pages = {createPage( 4 ), createPage( 4 )}; @@ -1191,7 +1221,7 @@ public void vectoredWriteMustThrowWhenArrayOffsetIsGreaterThanArrayLength() thro public void vectoredReadMustReadNothingWhenLengthIsZero() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage pageA = createPage( 4 ); @@ -1213,7 +1243,7 @@ public void vectoredReadMustReadNothingWhenLengthIsZero() throws Exception public void vectoredWriteMustReadNothingWhenLengthIsZero() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); ByteBufferPage pageA = createPage( 4 ); @@ -1236,7 +1266,7 @@ public void vectoredWriteMustReadNothingWhenLengthIsZero() throws Exception public void mustDeleteFileIfClosedWithCloseAndDelete() throws Exception { File file = file( "file" ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapperAndFile( factory, file, 4 ); swapper.closeAndDelete(); @@ -1254,14 +1284,14 @@ public void mustDeleteFileIfClosedWithCloseAndDelete() throws Exception @Test public void streamFilesRecursiveMustBeEmptyForEmptyBaseDirectory() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); assertThat( factory.streamFilesRecursive( baseDirectory() ).count(), is( 0L ) ); } @Test public void streamFilesRecursiveMustListAllFilesInBaseDirectory() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1274,7 +1304,7 @@ public void streamFilesRecursiveMustListAllFilesInBaseDirectory() throws Excepti @Test public void streamFilesRecursiveMustListAllFilesInSubDirectories() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File sub1 = new File( base, "sub1" ); File sub1sub1 = new File( sub1, "sub1" ); @@ -1301,7 +1331,7 @@ public void streamFilesRecursiveMustListAllFilesInSubDirectories() throws Except @Test public void streamFilesRecursiveFilePathsMustBeCanonical() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File sub = new File( base, "sub" ); mkdirs( sub ); @@ -1316,7 +1346,7 @@ public void streamFilesRecursiveFilePathsMustBeCanonical() throws Exception @Test public void streamFilesRecursiveMustListSingleFileGivenAsBase() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1329,7 +1359,7 @@ public void streamFilesRecursiveMustListSingleFileGivenAsBase() throws Exception @Test public void streamFilesRecursiveMustThrowOnNonExistingBasePath() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File nonExisting = new File( base, "nonExisting" ); expectedException.expect( NoSuchFileException.class ); @@ -1339,7 +1369,7 @@ public void streamFilesRecursiveMustThrowOnNonExistingBasePath() throws Exceptio @Test public void streamFilesRecursiveMustRenameFiles() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1352,7 +1382,7 @@ public void streamFilesRecursiveMustRenameFiles() throws Exception @Test public void streamFilesRecursiveMustRenameDelete() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1367,7 +1397,7 @@ public void streamFilesRecursiveMustRenameDelete() throws Exception @Test public void streamFilesRecursiveMustThrowWhenDeletingNonExistingFile() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); PageSwapper swapperA = createSwapperAndFile( factory, a ); @@ -1380,7 +1410,7 @@ public void streamFilesRecursiveMustThrowWhenDeletingNonExistingFile() throws Ex @Test public void streamFilesRecursiveMustThrowWhenTargetFileOfRenameAlreadyExists() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1394,7 +1424,7 @@ public void streamFilesRecursiveMustThrowWhenTargetFileOfRenameAlreadyExists() t @Test public void streamFilesRecursiveMustNotThrowWhenTargetFileOfRenameAlreadyExistsAndUsingReplaceExisting() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1407,7 +1437,7 @@ public void streamFilesRecursiveMustNotThrowWhenTargetFileOfRenameAlreadyExistsA @Test public void streamFilesRecursiveMustCreateMissingPathDirectoriesImpliedByFileRename() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File target = new File( new File( new File( base, "sub" ), "sub" ), "target" ); @@ -1420,7 +1450,7 @@ public void streamFilesRecursiveMustCreateMissingPathDirectoriesImpliedByFileRen @Test public void streamFilesRecursiveMustNotSeeFilesLaterCreatedBaseDirectory() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1433,7 +1463,7 @@ public void streamFilesRecursiveMustNotSeeFilesLaterCreatedBaseDirectory() throw @Test public void streamFilesRecursiveMustNotSeeFilesRenamedIntoBaseDirectory() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File sub = new File( base, "sub" ); @@ -1459,7 +1489,7 @@ public void streamFilesRecursiveMustNotSeeFilesRenamedIntoBaseDirectory() throws @Test public void streamFilesRecursiveMustNotSeeFilesRenamedIntoSubDirectory() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File sub = new File( base, "sub" ); @@ -1483,7 +1513,7 @@ public void streamFilesRecursiveMustNotSeeFilesRenamedIntoSubDirectory() throws @Test public void streamFilesRecursiveSourceFileMustNotExistAfterRename() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1497,7 +1527,7 @@ public void streamFilesRecursiveSourceFileMustNotExistAfterRename() throws Excep @Test public void streamFilesRecursiveRenameMustNotChangeSourceFileContents() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); @@ -1520,7 +1550,7 @@ public void streamFilesRecursiveRenameMustNotChangeSourceFileContents() throws E public void streamFilesRecursiveRenameMustNotChangeSourceFileContentsWithReplaceExisting() throws Exception { - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); File base = baseDirectory(); File a = new File( base, "a" ); File b = new File( base, "b" ); diff --git a/community/io/src/test/java/org/neo4j/io/pagecache/impl/SingleFilePageSwapperTest.java b/community/io/src/test/java/org/neo4j/io/pagecache/impl/SingleFilePageSwapperTest.java index 72bd3a9554097..1a6b936d64756 100644 --- a/community/io/src/test/java/org/neo4j/io/pagecache/impl/SingleFilePageSwapperTest.java +++ b/community/io/src/test/java/org/neo4j/io/pagecache/impl/SingleFilePageSwapperTest.java @@ -23,7 +23,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.junit.internal.AssumptionViolatedException; +import org.junit.AssumptionViolatedException; import java.io.BufferedReader; import java.io.File; @@ -112,14 +112,14 @@ protected void assumeFalse( String message, boolean test ) } @Test - public void swappingInMustFillPageWithData() throws IOException + public void swappingInMustFillPageWithData() throws Exception { byte[] bytes = new byte[] { 1, 2, 3, 4 }; StoreChannel channel = getFs().create( getFile() ); channel.writeAll( wrap( bytes ) ); channel.close(); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, getFile(), 4, null, false ); ByteBuffer target = ByteBuffer.allocateDirect( 4 ); ByteBufferPage page = new ByteBufferPage( target ); @@ -129,7 +129,7 @@ public void swappingInMustFillPageWithData() throws IOException } @Test - public void mustZeroFillPageBeyondEndOfFile() throws IOException + public void mustZeroFillPageBeyondEndOfFile() throws Exception { byte[] bytes = new byte[] { // --- page 0: @@ -141,7 +141,7 @@ public void mustZeroFillPageBeyondEndOfFile() throws IOException channel.writeAll( wrap( bytes ) ); channel.close(); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, getFile(), 4, null, false ); ByteBuffer target = ByteBuffer.allocateDirect( 4 ); ByteBufferPage page = new ByteBufferPage( target ); @@ -151,14 +151,14 @@ public void mustZeroFillPageBeyondEndOfFile() throws IOException } @Test - public void swappingOutMustWritePageToFile() throws IOException + public void swappingOutMustWritePageToFile() throws Exception { getFs().create( getFile() ).close(); byte[] expected = new byte[] { 1, 2, 3, 4 }; ByteBufferPage page = new ByteBufferPage( wrap( expected ) ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, getFile(), 4, null, false ); swapper.write( 0, page ); @@ -170,7 +170,7 @@ public void swappingOutMustWritePageToFile() throws IOException } @Test - public void swappingOutMustNotOverwriteDataBeyondPage() throws IOException + public void swappingOutMustNotOverwriteDataBeyondPage() throws Exception { byte[] initialData = new byte[] { // --- page 0: @@ -195,7 +195,7 @@ public void swappingOutMustNotOverwriteDataBeyondPage() throws IOException byte[] change = new byte[] { 8, 7, 6, 5 }; ByteBufferPage page = new ByteBufferPage( wrap( change ) ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); PageSwapper swapper = createSwapper( factory, getFile(), 4, null, false ); swapper.write( 1, page ); @@ -214,7 +214,7 @@ public void creatingSwapperForFileMustTakeLockOnFile() throws Exception { assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( fs ); File file = testDir.file( "file" ); @@ -239,7 +239,7 @@ public void creatingSwapperForInternallyLockedFileMustThrow() throws Exception { assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); // no file locking on Windows. - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( fs ); File file = testDir.file( "file" ); @@ -259,7 +259,7 @@ public void creatingSwapperForExternallyLockedFileMustThrow() throws Exception { assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); // no file locking on Windows. - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( fs ); File file = testDir.file( "file" ); @@ -294,7 +294,7 @@ public void mustUnlockFileWhenThePageSwapperIsClosed() throws Exception { assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); // no file locking on Windows. - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( fs ); File file = testDir.file( "file" ); @@ -314,7 +314,7 @@ public void fileMustRemainLockedEvenIfChannelIsClosedByStrayInterrupt() throws E { assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); // no file locking on Windows. - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( fs ); File file = testDir.file( "file" ); @@ -344,7 +344,7 @@ public void mustCloseFilesIfTakingFileLockThrows() throws Exception assumeFalse( "No file locking on Windows", SystemUtils.IS_OS_WINDOWS ); // no file locking on Windows. final AtomicInteger openFilesCounter = new AtomicInteger(); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); DefaultFileSystemAbstraction fs = new DefaultFileSystemAbstraction(); factory.setFileSystemAbstraction( new DelegatingFileSystemAbstraction( fs ) { @@ -365,7 +365,7 @@ public void close() throws IOException } ); File file = testDir.file( "file" ); try ( StoreChannel ch = fs.create( file ); - FileLock lock = ch.tryLock() ) + FileLock ignore = ch.tryLock() ) { createSwapper( factory, file, 4, NO_CALLBACK, false ).close(); fail( "Creating a page swapper for a locked channel should have thrown" ); @@ -406,7 +406,7 @@ public void mustHandleMischiefInPositionedRead() throws Exception byte[] data = new byte[bytesTotal]; ThreadLocalRandom.current().nextBytes( data ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); factory.setFileSystemAbstraction( getFs() ); File file = getFile(); PageSwapper swapper = createSwapper( factory, file, bytesTotal, NO_CALLBACK, true ); @@ -450,7 +450,7 @@ public void mustHandleMischiefInPositionedWrite() throws Exception clear( zeroPage ); File file = getFile(); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); RandomAdversary adversary = new RandomAdversary( 0.5, 0.0, 0.0 ); factory.setFileSystemAbstraction( new AdversarialFileSystemAbstraction( adversary, getFs() ) ); PageSwapper swapper = createSwapper( factory, file, bytesTotal, NO_CALLBACK, true ); @@ -487,7 +487,7 @@ public void mustHandleMischiefInPositionedVectoredRead() throws Exception byte[] data = new byte[bytesTotal]; ThreadLocalRandom.current().nextBytes( data ); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); factory.setFileSystemAbstraction( getFs() ); File file = getFile(); PageSwapper swapper = createSwapper( factory, file, bytesTotal, NO_CALLBACK, true ); @@ -545,7 +545,7 @@ public void mustHandleMischiefInPositionedVectoredWrite() throws Exception clear( zeroPage ); File file = getFile(); - PageSwapperFactory factory = swapperFactory(); + PageSwapperFactory factory = createSwapperFactory(); RandomAdversary adversary = new RandomAdversary( 0.5, 0.0, 0.0 ); factory.setFileSystemAbstraction( new AdversarialFileSystemAbstraction( adversary, getFs() ) ); PageSwapper swapper = createSwapper( factory, file, bytesPerPage, NO_CALLBACK, true );