Hi,

The jIRCii app passes a CharseetDecoder to InputStreamReader that returns
null for charset() (its named NoConversion). This must be catched in the
InputStreamReader constructor.

2005-11-09  Roman Kennke  <[EMAIL PROTECTED]>

        * java/io/InputStreamReader.java
        (InputStreamReader(InputStream, CharsetDecoder)): Catch the case
        when the CharsetDecoder returns a null charset and handle it like
        US-ASCII.

/Roman
Index: java/io/InputStreamReader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/io/InputStreamReader.java,v
retrieving revision 1.26
diff -u -r1.26 InputStreamReader.java
--- java/io/InputStreamReader.java	13 Sep 2005 21:25:09 -0000	1.26
+++ java/io/InputStreamReader.java	9 Nov 2005 22:35:38 -0000
@@ -249,8 +249,12 @@
     this.in = in;
     this.decoder = decoder;
 
+    Charset charset = decoder.charset();
     try {
-	maxBytesPerChar = decoder.charset().newEncoder().maxBytesPerChar();
+      if (charset == null)
+        maxBytesPerChar = 1f;
+      else
+        maxBytesPerChar = charset.newEncoder().maxBytesPerChar();
     } catch(UnsupportedOperationException _){
 	maxBytesPerChar = 1f;
     } 
@@ -258,7 +262,10 @@
     decoder.onMalformedInput(CodingErrorAction.REPLACE);
     decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
     decoder.reset();
-    encoding = EncodingHelper.getOldCanonical(decoder.charset().name());      
+    if (charset == null)
+      encoding = "US-ASCII";
+    else
+      encoding = EncodingHelper.getOldCanonical(decoder.charset().name());      
   }
   
   /**
_______________________________________________
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to