-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
6
-
x86
-
windows_xp
FULL PRODUCT VERSION :
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
XP SP2
A DESCRIPTION OF THE PROBLEM :
Character decoder x-ISO-2022-CN-GB & x-ISO-2022-CN-CNS throws NullPointerException
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run test case below
ACTUAL -
Exception thrown
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
at sun.nio.cs.ext.ISO2022_CN$Decoder.SODecode(ISO2022_CN.java:116)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeArrayLoop(ISO2022_CN.java:368
)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeLoop(ISO2022_CN.java:383)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:444)
at java.lang.String.<init>(String.java:516)
at EncErr2.main(EncErr2.java:12)
java.lang.NullPointerException
at sun.nio.cs.ext.ISO2022_CN$Decoder.SODecode(ISO2022_CN.java:114)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeArrayLoop(ISO2022_CN.java:368
)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeLoop(ISO2022_CN.java:383)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:444)
at java.lang.String.<init>(String.java:516)
at EncErr2.main(EncErr2.java:22)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.*;
import java.nio.charset.*;
import java.util.*;
public class EncErr2 {
public static void main(String[] args){
String enc = "x-ISO-2022-CN-CNS";
int c = 0xa7;
String s = String.valueOf((char)c);
byte[] bb = null;
try {
bb = s.getBytes(enc);
String str = new String(bb,enc);
} catch (Throwable th){
th.printStackTrace(System.err);
}
enc = "x-ISO-2022-CN-GB";
c = 0xa4;
s = String.valueOf((char)c);
bb = null;
try {
bb = s.getBytes(enc);
String str = new String(bb,enc);
} catch (Throwable th){
th.printStackTrace(System.err);
}
}
}
---------- END SOURCE ----------
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
XP SP2
A DESCRIPTION OF THE PROBLEM :
Character decoder x-ISO-2022-CN-GB & x-ISO-2022-CN-CNS throws NullPointerException
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run test case below
ACTUAL -
Exception thrown
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
at sun.nio.cs.ext.ISO2022_CN$Decoder.SODecode(ISO2022_CN.java:116)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeArrayLoop(ISO2022_CN.java:368
)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeLoop(ISO2022_CN.java:383)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:444)
at java.lang.String.<init>(String.java:516)
at EncErr2.main(EncErr2.java:12)
java.lang.NullPointerException
at sun.nio.cs.ext.ISO2022_CN$Decoder.SODecode(ISO2022_CN.java:114)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeArrayLoop(ISO2022_CN.java:368
)
at sun.nio.cs.ext.ISO2022_CN$Decoder.decodeLoop(ISO2022_CN.java:383)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:444)
at java.lang.String.<init>(String.java:516)
at EncErr2.main(EncErr2.java:22)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.*;
import java.nio.charset.*;
import java.util.*;
public class EncErr2 {
public static void main(String[] args){
String enc = "x-ISO-2022-CN-CNS";
int c = 0xa7;
String s = String.valueOf((char)c);
byte[] bb = null;
try {
bb = s.getBytes(enc);
String str = new String(bb,enc);
} catch (Throwable th){
th.printStackTrace(System.err);
}
enc = "x-ISO-2022-CN-GB";
c = 0xa4;
s = String.valueOf((char)c);
bb = null;
try {
bb = s.getBytes(enc);
String str = new String(bb,enc);
} catch (Throwable th){
th.printStackTrace(System.err);
}
}
}
---------- END SOURCE ----------
- duplicates
-
JDK-6392664 Initialization and Concurrency bugs in ISO-2022-CN-GB, ISO-2022-CN-CNS
-
- Closed
-