Index: src/main/java/java/net/URLClassLoader.java =================================================================== --- src/main/java/java/net/URLClassLoader.java (revision 541284) +++ src/main/java/java/net/URLClassLoader.java (working copy) @@ -788,8 +788,11 @@ || fixedResName.startsWith("\\")) { //$NON-NLS-1$ fixedResName = fixedResName.substring(1); } - buf.append(fixedResName); + // escape '%' symbol + String fixedPercentResName = fixedResName.replace("%", "%25"); //$NON-NLS-1$ //$NON-NLS-2$ + buf.append(fixedPercentResName); + String filename = buf.toString(); try { Index: src/test/java/tests/api/java/net/URLClassLoaderTest.java =================================================================== --- src/test/java/tests/api/java/net/URLClassLoaderTest.java (revision 541284) +++ src/test/java/tests/api/java/net/URLClassLoaderTest.java (working copy) @@ -445,4 +445,12 @@ URLClassLoader loader = new URLClassLoader(urls, null); return loader; } + + /** + * Regression test for HARMONY-2255 + */ + public void test_getResourceAsStream() { + InputStream in = this.getClass().getClassLoader().getResourceAsStream("tests/api/java/net/Test%.properties"); + assertNotNull(in); + } } Index: src/test/resources/tests/api/java/net/Test%.properties ===================================================================