HADOOP-15114. Add closeStreams(...) to IOUtils (addendum).

Contributed by Ajay Kumar.
This commit is contained in:
Steve Loughran 2018-01-19 14:54:13 +00:00
parent e5a1ad6e24
commit d689b2d99c

View File

@ -299,13 +299,14 @@ public void testListDirectory() throws IOException {
}
@Test
public void testCloseStreams() {
File tmpFile = new File("deleteMe.txt");
FileOutputStream fos = null;
BufferedOutputStream bos = null;
public void testCloseStreams() throws IOException {
File tmpFile = null;
FileOutputStream fos;
BufferedOutputStream bos;
FileOutputStream nullStream = null;
try {
tmpFile = new File(GenericTestUtils.getTestDir(), "testCloseStreams.txt");
fos = new FileOutputStream(tmpFile) {
@Override
public void close() throws IOException {
@ -315,19 +316,15 @@ public void close() throws IOException {
bos = new BufferedOutputStream(
new FileOutputStream(tmpFile)) {
@Override
public void close() throws IOException {
public void close() {
throw new NullPointerException();
}
};
} catch (IOException ioe) {
LOG.warn("Exception in TestIOUtils.testCloseStreams: ", ioe);
}
try {
IOUtils.closeStreams(fos, bos, nullStream);
IOUtils.closeStreams();
} catch (Exception ex) {
LOG.error("Expect IOUtils.closeStreams to close streams quietly.", ex);
throw ex;
} finally {
FileUtils.deleteQuietly(tmpFile);
}
}