diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 0cfd284d4d..2adae4df03 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1677,6 +1677,9 @@ Release 0.23.5 - UNRELEASED BUG FIXES + HDFS-3829. TestHftpURLTimeouts fails intermittently with JDK7 (Trevor + Robinson via tgraves) + Release 0.23.4 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHftpURLTimeouts.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHftpURLTimeouts.java index 0f8d7d00e4..345c150a74 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHftpURLTimeouts.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHftpURLTimeouts.java @@ -53,19 +53,23 @@ public void testHftpSocketTimeout() throws Exception { boolean timedout = false; HftpFileSystem fs = (HftpFileSystem)FileSystem.get(uri, conf); - HttpURLConnection conn = fs.openConnection("/", ""); - timedout = false; try { - // this will consume the only slot in the backlog - conn.getInputStream(); - } catch (SocketTimeoutException ste) { - timedout = true; - assertEquals("Read timed out", ste.getMessage()); + HttpURLConnection conn = fs.openConnection("/", ""); + timedout = false; + try { + // this will consume the only slot in the backlog + conn.getInputStream(); + } catch (SocketTimeoutException ste) { + timedout = true; + assertEquals("Read timed out", ste.getMessage()); + } finally { + if (conn != null) conn.disconnect(); + } + assertTrue("read timedout", timedout); + assertTrue("connect timedout", checkConnectTimeout(fs, false)); } finally { - if (conn != null) conn.disconnect(); + fs.close(); } - assertTrue("read timedout", timedout); - assertTrue("connect timedout", checkConnectTimeout(fs, false)); } @Test @@ -79,20 +83,24 @@ public void testHsftpSocketTimeout() throws Exception { boolean timedout = false; HsftpFileSystem fs = (HsftpFileSystem)FileSystem.get(uri, conf); - HttpURLConnection conn = null; - timedout = false; try { - // this will consume the only slot in the backlog - conn = fs.openConnection("/", ""); - } catch (SocketTimeoutException ste) { - // SSL expects a negotiation, so it will timeout on read, unlike hftp - timedout = true; - assertEquals("Read timed out", ste.getMessage()); + HttpURLConnection conn = null; + timedout = false; + try { + // this will consume the only slot in the backlog + conn = fs.openConnection("/", ""); + } catch (SocketTimeoutException ste) { + // SSL expects a negotiation, so it will timeout on read, unlike hftp + timedout = true; + assertEquals("Read timed out", ste.getMessage()); + } finally { + if (conn != null) conn.disconnect(); + } + assertTrue("ssl read connect timedout", timedout); + assertTrue("connect timedout", checkConnectTimeout(fs, true)); } finally { - if (conn != null) conn.disconnect(); + fs.close(); } - assertTrue("ssl read connect timedout", timedout); - assertTrue("connect timedout", checkConnectTimeout(fs, true)); } private boolean checkConnectTimeout(HftpFileSystem fs, boolean ignoreReadTimeout)