Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4786884

(cs) Charset methods and constructors should reject empty names

XMLWordPrintable

    • b32
    • generic, sparc
    • generic, solaris_2.6, solaris_8
    • Verified


      Name: auR10023 Date: 12/02/2002

      Javadoc for java.nio.charset.Charset says:
      ...
       The empty string is not a legal charset name.
      ...
      So, java.nio.charset.Charset.forName(String) should throw
      IllegalCharsetNameException with empty string.

      Here is the example:

      -------test.java---------
      import java.nio.charset.*;

      public class test {
          public static void main (String [] args) {
              try {
                  Charset.forName("");
                  System.out.println("IllegalCharsetNameException expected");
                  return;
              } catch(IllegalCharsetNameException e) { } catch (UnsupportedCharsetException e) {
                  System.out.println("Unexpected " + e);
                  return;
              }
              System.out.println("OKAY");
          }
      }

      Here is the result
      #java -version

      java version "1.4.2-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b07)
      Java HotSpot(TM) Client VM (build 1.4.2-beta-b07, mixed mode)

      #java test

      Unexpected java.nio.charset.UnsupportedCharsetException:

      ======================================================================

      See also 4786886, which reports the same problem for the isSupported() method.

      ======================================================================

      Name: auR10023 Date: 03/14/2003
       
      java.nio.charset.Charset(String canonicalName, String[] aliases) should
      throw IllegalCharsetNameException with empty canonicalName.
       
      Here is the example:
       
      -------test.java---------
       
      import java.nio.charset.*;
       
      public class test {
          static class TestCharset extends Charset {
              public TestCharset(String canonicalName, String[] aliases) {
                  super(canonicalName, aliases);
              }
              public CharsetDecoder newDecoder() {
                 return null;
              }
       
              public CharsetEncoder newEncoder() {
                 return null;
              }
       
              public boolean contains(Charset cs) {
                  return false;
              }
       
          }
       
          public static void main (String [] args) {
              try {
                  new TestCharset("", null);
                  System.out.println("IllegalCharsetNameException should be thrown");
              } catch (IllegalCharsetNameException e) {
                  System.out.println( "OKAY");
              }
          }
      }
       
      Here is the result
      #java -version
       
      java version "1.4.2-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b16)
      Java HotSpot(TM) Client VM (build 1.4.2-beta-b16, mixed mode)
       
      #java test
       
      IllegalCharsetNameException should be thrown
       
      ======================================================================

            mr Mark Reinhold
            avusunw Avu Avu (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: