@@ -520,40 +520,46 @@ public void testStreamPurgeDuringReadAheadCallExecuting() throws Exception {
520520 any (Integer .class ), any (Integer .class ), any (String .class ),
521521 any (String .class ), any (TracingContext .class ));
522522
523- AbfsInputStream inputStream = getAbfsInputStream (client ,
524- "testSuccessfulReadAhead.txt" );
525- queueReadAheads (inputStream );
526-
527523 final ReadBufferManager readBufferManager
528524 = ReadBufferManager .getBufferManager ();
529525
530526 final int readBufferTotal = readBufferManager .getNumBuffers ();
531-
532- //Sleeping to give ReadBufferWorker to pick the readBuffers for processing.
533- Thread .sleep (readBufferTransferToInProgressProbableTime );
527+ final int expectedFreeListBufferCount = readBufferTotal
528+ - readBufferQueuedCount ;
529+
530+ try (AbfsInputStream inputStream = getAbfsInputStream (client ,
531+ "testSuccessfulReadAhead.txt" )) {
532+ // As this is try-with-resources block, the close() method of the created
533+ // abfsInputStream object shall be called on the end of the block.
534+ queueReadAheads (inputStream );
535+
536+ //Sleeping to give ReadBufferWorker to pick the readBuffers for processing.
537+ Thread .sleep (readBufferTransferToInProgressProbableTime );
538+
539+ Assertions .assertThat (readBufferManager .getInProgressCopiedList ())
540+ .describedAs (String .format ("InProgressList should have %d elements" ,
541+ readBufferQueuedCount ))
542+ .hasSize (readBufferQueuedCount );
543+ Assertions .assertThat (readBufferManager .getFreeListCopy ())
544+ .describedAs (String .format ("FreeList should have %d elements" ,
545+ expectedFreeListBufferCount ))
546+ .hasSize (expectedFreeListBufferCount );
547+ Assertions .assertThat (readBufferManager .getCompletedReadListCopy ())
548+ .describedAs ("CompletedList should have 0 elements" )
549+ .hasSize (0 );
550+ }
534551
535552 Assertions .assertThat (readBufferManager .getInProgressCopiedList ())
536- .describedAs ("InProgressList should have " + readBufferQueuedCount + " elements" )
553+ .describedAs (String .format ("InProgressList should have %d elements" ,
554+ readBufferQueuedCount ))
537555 .hasSize (readBufferQueuedCount );
538- final int freeListBufferCount = readBufferTotal - readBufferQueuedCount ;
539556 Assertions .assertThat (readBufferManager .getFreeListCopy ())
540- .describedAs ("FreeList should have " + freeListBufferCount + "elements" )
541- .hasSize (freeListBufferCount );
542- Assertions .assertThat (readBufferManager .getCompletedReadListCopy ())
543- .describedAs ("CompletedList should have 0 elements" )
544- .hasSize (0 );
545-
546- inputStream .close ();
547-
548- Assertions .assertThat (readBufferManager .getInProgressCopiedList ())
549- .describedAs ("InProgressList should have " + readBufferQueuedCount + " elements" )
550- .hasSize (readBufferQueuedCount );
557+ .describedAs (String .format ("FreeList should have %d elements" ,
558+ expectedFreeListBufferCount ))
559+ .hasSize (expectedFreeListBufferCount );
551560 Assertions .assertThat (readBufferManager .getCompletedReadListCopy ())
552561 .describedAs ("CompletedList should have 0 elements" )
553562 .hasSize (0 );
554- Assertions .assertThat (readBufferManager .getFreeListCopy ())
555- .describedAs ("FreeList should have " + freeListBufferCount + " elements" )
556- .hasSize (freeListBufferCount );
557563 }
558564
559565 /**
0 commit comments