@Test
public void testStreamWithCacheExpiration() throws IOException {
TestRemoteIterator statuses = newRemoteIterator(
new FileStatus(1337, false, 1, 4096, 1, 2, FsPermission.getFileDefault(), "testowner", "testgroup", new Path(TEST_PATH, "bar")),
new FileStatus(0, true, 0, 0, 3, 4, FsPermission.getDirDefault(), "testowner", "testgroup", new Path(TEST_PATH, "baz"))
);
final ListStatusContinuationHandle handle;
{
DFS.ListStatusResponse response = getResponse(TEST_PATH_STRING, statuses, 1, null);
assertEquals(1, response.getStatusesList().size());
assertEquals(TEST_PATH_STRING + "/bar", response.getStatusesList().get(0).getPath());
assertTrue(response.hasHandle());
handle = response.getHandle();
assertTrue(getPDFSProtocol().isIteratorOpen(handle));
assertFalse(statuses.isClosed());
}
getTicker().advance(5, TimeUnit.MINUTES);
try {
getResponse(TEST_PATH_STRING, null, 1, handle);
fail();
} catch (UserException e) {
assertEquals(ErrorType.IO_EXCEPTION, e.getErrorType());
assertSame(IOException.class, e.getCause().getClass());
}
}