@Override public void go() throws Exception { try (FSDataInputStream stream = fs.open(path)) { assertTrue(fs.getNumberOfOpenInputStreams() <= maxConcurrentInputStreams); assertTrue(fs.getTotalNumberOfOpenStreams() <= maxConcurrentStreamsTotal); final byte[] readBuffer = new byte[4096]; //noinspection StatementWithEmptyBody while (stream.read(readBuffer) != -1) {} } } }
@Test public void testFailingStreamsUnregister() throws Exception { final LimitedConnectionsFileSystem fs = new LimitedConnectionsFileSystem(new FailFs(), 1); assertEquals(0, fs.getNumberOfOpenInputStreams()); assertEquals(0, fs.getNumberOfOpenOutputStreams()); assertEquals(0, fs.getTotalNumberOfOpenStreams()); try { fs.open(new Path(tempFolder.newFile().toURI())); fail("this is expected to fail with an exception"); } catch (IOException e) { // expected } try { fs.create(new Path(tempFolder.newFile().toURI()), WriteMode.NO_OVERWRITE); fail("this is expected to fail with an exception"); } catch (IOException e) { // expected } assertEquals(0, fs.getNumberOfOpenInputStreams()); assertEquals(0, fs.getNumberOfOpenOutputStreams()); assertEquals(0, fs.getTotalNumberOfOpenStreams()); }
@Override public void go() throws Exception { try (FSDataInputStream stream = fs.open(path)) { assertTrue(fs.getNumberOfOpenInputStreams() <= maxConcurrentInputStreams); assertTrue(fs.getTotalNumberOfOpenStreams() <= maxConcurrentStreamsTotal); final byte[] readBuffer = new byte[(int) fs.getFileStatus(path).getLen() - 1]; assertTrue(stream.read(readBuffer) != -1); waitTillWokenUp(); // try to write one more thing, which might/should fail with an I/O exception //noinspection ResultOfMethodCallIgnored stream.read(); } } }