Name: yyC67448 Date: 01/29/98
The java.net.URL class does not perform url encoding/decoding, so the
java.net.URL.equals, java.net.URL.sameFile methods return false on URLs, that
are equal modulo url encoding.
The java.net.URL constuctor also does not throw any exceptions on non-urlencoded
parameters, thus creating an objects in an invalid state.
Here is the simple test demonstrating the bug:
-------------------------------- Test.java -----------------------------
import java.net.*;
class test
{
public static void main(String args[])
{
URL url = null;
URL url1 = null;
try {
url = new URL("http://web2.javasoft.com/some+file.html");
url1 = new URL("http://web2.javasoft.com/some%20file.html");
} catch(Exception e)
{
System.out.println("Unexpected exception :" + e);
System.exit(-1);
}
if(url.sameFile(url1))
{
System.out.println("OKAY");
System.exit(0);
}
else
{
System.out.println("Failed. ");
System.exit(-1);
}
}
}
---------------------- Output from the test --------------------
Failed.
-----------------------------------------------------------------
======================================================================
- duplicates
-
JDK-4096021 Please add java.net.URLEncoder.decode() method
- Closed