Index: src/test/java/tests/api/java/net/URLTest.java =================================================================== --- src/test/java/tests/api/java/net/URLTest.java (revision 498942) +++ src/test/java/tests/api/java/net/URLTest.java (working copy) @@ -35,6 +35,7 @@ import java.security.Permission; import java.util.ArrayList; import java.util.List; + import tests.support.Support_Configuration; import tests.support.resource.Support_Resources; @@ -831,9 +832,23 @@ } /** + * @throws MalformedURLException * @tests java.net.URL#openStream() */ - public void test_openStream() { + public void test_openStream() throws MalformedURLException { + // Regression test for Harmony-1700 + URL BASE = URLTest.class.getClassLoader().getResource( + URLTest.class.getPackage().getName().replace('.', + File.separatorChar) + + "/hello.jar"); + URL url = new URL("jar:" + BASE + "!/foo.jar!/Bugs/HelloWorld.class"); + try { + url.openStream(); + fail("should throw FNFE."); + } catch (Exception e){ + assertEquals("java.io.FileNotFoundException", e.getClass().getName()); + } + // Test for method java.io.InputStream java.net.URL.openStream() File resources = Support_Resources.createTempFolder(); try { Index: src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java =================================================================== --- src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (revision 498942) +++ src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (working copy) @@ -188,6 +188,11 @@ URL jarFileURL = getJarFileURL(); if (jarFileURL.getProtocol().equals("file")) { //$NON-NLS-1$ String fileName = jarFileURL.getFile(); + if(!new File(fileName).exists()){ + // KA026=JAR entry {0} not found in {1} + throw new FileNotFoundException(Msg.getString("KA026", //$NON-NLS-1$ + getEntryName(), fileName)); + } String host = jarFileURL.getHost(); if (host != null && host.length() > 0) { fileName = "//" + host + fileName; //$NON-NLS-1$ Index: src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties =================================================================== --- src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties (revision 498942) +++ src/main/java/org/apache/harmony/luni/util/ExternalMessages.properties (working copy) @@ -318,3 +318,4 @@ KA023=Proxy is null or invalid type KA024=One of urls is null KA025=Method has not been implemented +KA026=JAR entry {0} not found in {1}