diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataInputStream.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataInputStream.java index 640db592fb..a80279db52 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataInputStream.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataInputStream.java @@ -230,8 +230,8 @@ public void unbuffer() { try { ((CanUnbuffer)in).unbuffer(); } catch (ClassCastException e) { - throw new UnsupportedOperationException("this stream does not " + - "support unbuffering."); + throw new UnsupportedOperationException("this stream " + + in.getClass().getName() + " does not " + "support unbuffering."); } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/TestUnbuffer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/TestUnbuffer.java index e25a754885..b112e306c8 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/TestUnbuffer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/TestUnbuffer.java @@ -27,12 +27,18 @@ import org.apache.hadoop.hdfs.client.HdfsClientConfigKeys; import org.apache.hadoop.io.IOUtils; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.Mockito; public class TestUnbuffer { private static final Log LOG = LogFactory.getLog(TestUnbuffer.class.getName()); + @Rule + public ExpectedException exception = ExpectedException.none(); + /** * Test that calling Unbuffer closes sockets. */ @@ -123,4 +129,19 @@ public void testOpenManyFilesViaTcp() throws Exception { } } } + + /** + * Test unbuffer method which throws an Exception with class name included. + */ + @Test + public void testUnbufferException() { + FSInputStream in = Mockito.mock(FSInputStream.class); + FSDataInputStream fs = new FSDataInputStream(in); + + exception.expect(UnsupportedOperationException.class); + exception.expectMessage("this stream " + in.getClass().getName() + + " does not support unbuffering"); + + fs.unbuffer(); + } }