This is the mail archive of the
mailing list for the Java project.
Re: java.net.URLDecoder doesn't follow spec.
- To: edgar at villanueva dot com
- Subject: Re: java.net.URLDecoder doesn't follow spec.
- From: Mark Wielaard <mark at klomp dot org>
- Date: Sun, 14 Jan 2001 22:45:46 +0100
- Cc: "'java-discuss at sources dot redhat dot com'" <java-discuss at sources dot redhat dot com>
- References: <3A61CF99.E6BCFB7A@home.com>
On Sun, Jan 14, 2001 at 11:11:05AM -0500, Edgar Villanueva wrote:
> I was compiling some existing code and found a problem with
> According to the sun jdk1.3 javadocs java.net.URLDecoder.decode should
> not throw an Exception.
> The libjava version does.
> I think decode needs to catch any exception and throw some runtime
> exceptions accordingly.
Yes you are right.
The following diff removes the Exception and merges URLDecoder with the
comments of the Classpath version (the code was already the same).
RCS file: /cvs/gcc/egcs/libjava/java/net/URLDecoder.java,v
retrieving revision 1.3
diff -u -r1.3 URLDecoder.java
--- URLDecoder.java 2000/03/07 19:55:27 1.3
+++ URLDecoder.java 2001/01/14 21:40:02
@@ -1,33 +1,67 @@
-// URLDecoder.java - Provides a method for decoding strings according to
-// application/x-www-form-urlencoded MIME type.
+/* URLDecoder.java -- Class to decode URL's from encoded form.
+ Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-/* Copyright (C) 1999 Free Software Foundation
+This file is part of GNU Classpath.
- This file is part of libgcj.
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+As a special exception, if you link this library with other files to
+produce an executable, this library does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License. */
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
- * @author Warren Levy <email@example.com>
- * @date April 22, 1999.
- * Written using on-line Java Platform 1.2 API Specification.
- * Status: Believed complete and correct.
+ * This utility class contains one static method that converts a
+ * string encoded in the x-www-form-urlencoded format to the original
+ * text. The x-www-form-urlencoded format
+ * replaces certain disallowed characters with
+ * encoded equivalents. All upper case and lower case letters in the
+ * US alphabet remain as is, the space character (' ') is replaced with
+ * '+' sign, and all other characters are converted to a "%XX" format
+ * where XX is the hexadecimal representation of that character. Note
+ * that since unicode characters are 16 bits, and this method encodes only
+ * 8 bits of information, the lower 8 bits of the character are used.
+ * <p>
+ * This method is very useful for decoding strings sent to CGI scripts
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status: Believed complete and correct.
+ * @since 1.2
+ * @author Warren Levy <firstname.lastname@example.org>
+ * @author Aaron M. Renn (email@example.com) (documentation comments)
+ * @date April 22, 1999.
public class URLDecoder
- // This method, per the JCL, is conservative in that it encodes
- // some "allowable" characters as % triplets.
- public static String decode(String s) throws Exception
+ * This method translates the passed in string into x-www-form-urlencoded
+ * format and returns it.
+ * @param source The String to convert
+ * @return The converted String
+ public static String decode(String s)
String str = s.replace('+', ' ');
String result = "";
@@ -45,4 +79,5 @@
+} // class URLDecoder