-
Bug
-
Resolution: Fixed
-
P4
-
5.0
-
b78
-
x86
-
linux
FULL PRODUCT VERSION :
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux honolulu.ilog.fr 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686 unknown
A DESCRIPTION OF THE PROBLEM :
The decoder for Cp33722 fails to throw a MalformedInputException for
many single-byte input buffers.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
javac niobug3.java
java niobug3
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No output.
ACTUAL -
0x8E 0x
0xA1 0x
0xA2 0x3001
0xA3 0x
0xA5 0x
0xA6 0x30A6
0xA7 0x
0xA8 0x0416
0xA9 0x
0xAB 0x
0xAD 0x
0xAF 0x
0xB1 0x
0xB2 0x6E26
0xB3 0x
0xB4 0x6168
0xB5 0x
0xB6 0x507D
0xB7 0x
0xB8 0x4FC2
0xB9 0x
0xBA 0x676D
0xBB 0x
0xBC 0x7E82
0xBD 0x
0xBE 0x5F93
0xBF 0x
0xC0 0x795E
0xC1 0x
0xC2 0x758E
0xC3 0x
0xC4 0x56E3
0xC5 0x
0xC6 0x514E
0xC7 0x
0xC8 0x6CE2
0xC9 0x
0xCA 0x54C1
0xCB 0x
0xCC 0x5317
0xCD 0x
0xCE 0x6D0B
0xCF 0x
0xD0 0x6900
0xD1 0x
0xD2 0x51AB
0xD3 0x
0xD4 0x5616
0xD5 0x
0xD6 0x5B5B
0xD7 0x
0xD8 0x5FE4
0xD9 0x
0xDA 0x63A3
0xDB 0x
0xDC 0x6840
0xDD 0x
0xDE 0x6BF3
0xDF 0x
0xE0 0x70D9
0xE1 0x
0xE2 0x75F0
0xE3 0x
0xE4 0x9083
0xE5 0x
0xE6 0x7E59
0xE7 0x
0xE8 0x827E
0xE9 0x
0xEA 0x8709
0xEB 0x
0xEC 0x8B16
0xED 0x
0xEE 0x9087
0xEF 0x
0xF0 0x95DC
0xF1 0x
0xF2 0x9AD3
0xF3 0x
0xF4 0x9F61
0xF5 0x
0xF6 0xE055
0xF7 0x
0xF8 0xE113
0xF9 0x
0xFA 0xE1D1
0xFB 0x
0xFC 0xE28F
0xFD 0x
0xFE 0xE34D
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.*;
import java.nio.*;
import java.nio.charset.*;
public class niobug3 {
static String toHexString1 (int i) {
return new String(new char[] { "0123456789ABCDEF".charAt(i) });
}
static String toHexString2 (int i) {
return toHexString1((i>>4)&0x0f)
+toHexString1(i&0x0f);
}
static String toHexString4 (int i) {
return toHexString1((i>>12)&0x0f)
+toHexString1((i>>8)&0x0f)
+toHexString1((i>>4)&0x0f)
+toHexString1(i&0x0f);
}
public static void main (String[] args) throws CharacterCodingException {
String encoding = "Cp33722";
Charset charset = Charset.forName(encoding);
CharsetDecoder converter = charset.newDecoder();
converter = converter.onMalformedInput(CodingErrorAction.REPORT);
converter = converter.onUnmappableCharacter(CodingErrorAction.REPORT);
for (int b = 0x8e; b < 0x100; b++)
if (!(b >= 0x90 && b <= 0x9f)) {
ByteBuffer in = ByteBuffer.wrap(new byte[] { (byte)b });
try {
CharBuffer out = converter.decode(in);
System.out.print("0x"+toHexString2(b)+" 0x");
for (int j = 0; j < out.length(); j++) {
if (j > 0)
System.out.print(" 0x");
System.out.print(toHexString4(out.charAt(j)));
}
System.out.println();
} catch (CharacterCodingException e) {
}
}
}
}
---------- END SOURCE ----------
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux honolulu.ilog.fr 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686 unknown
A DESCRIPTION OF THE PROBLEM :
The decoder for Cp33722 fails to throw a MalformedInputException for
many single-byte input buffers.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
javac niobug3.java
java niobug3
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No output.
ACTUAL -
0x8E 0x
0xA1 0x
0xA2 0x3001
0xA3 0x
0xA5 0x
0xA6 0x30A6
0xA7 0x
0xA8 0x0416
0xA9 0x
0xAB 0x
0xAD 0x
0xAF 0x
0xB1 0x
0xB2 0x6E26
0xB3 0x
0xB4 0x6168
0xB5 0x
0xB6 0x507D
0xB7 0x
0xB8 0x4FC2
0xB9 0x
0xBA 0x676D
0xBB 0x
0xBC 0x7E82
0xBD 0x
0xBE 0x5F93
0xBF 0x
0xC0 0x795E
0xC1 0x
0xC2 0x758E
0xC3 0x
0xC4 0x56E3
0xC5 0x
0xC6 0x514E
0xC7 0x
0xC8 0x6CE2
0xC9 0x
0xCA 0x54C1
0xCB 0x
0xCC 0x5317
0xCD 0x
0xCE 0x6D0B
0xCF 0x
0xD0 0x6900
0xD1 0x
0xD2 0x51AB
0xD3 0x
0xD4 0x5616
0xD5 0x
0xD6 0x5B5B
0xD7 0x
0xD8 0x5FE4
0xD9 0x
0xDA 0x63A3
0xDB 0x
0xDC 0x6840
0xDD 0x
0xDE 0x6BF3
0xDF 0x
0xE0 0x70D9
0xE1 0x
0xE2 0x75F0
0xE3 0x
0xE4 0x9083
0xE5 0x
0xE6 0x7E59
0xE7 0x
0xE8 0x827E
0xE9 0x
0xEA 0x8709
0xEB 0x
0xEC 0x8B16
0xED 0x
0xEE 0x9087
0xEF 0x
0xF0 0x95DC
0xF1 0x
0xF2 0x9AD3
0xF3 0x
0xF4 0x9F61
0xF5 0x
0xF6 0xE055
0xF7 0x
0xF8 0xE113
0xF9 0x
0xFA 0xE1D1
0xFB 0x
0xFC 0xE28F
0xFD 0x
0xFE 0xE34D
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.*;
import java.nio.*;
import java.nio.charset.*;
public class niobug3 {
static String toHexString1 (int i) {
return new String(new char[] { "0123456789ABCDEF".charAt(i) });
}
static String toHexString2 (int i) {
return toHexString1((i>>4)&0x0f)
+toHexString1(i&0x0f);
}
static String toHexString4 (int i) {
return toHexString1((i>>12)&0x0f)
+toHexString1((i>>8)&0x0f)
+toHexString1((i>>4)&0x0f)
+toHexString1(i&0x0f);
}
public static void main (String[] args) throws CharacterCodingException {
String encoding = "Cp33722";
Charset charset = Charset.forName(encoding);
CharsetDecoder converter = charset.newDecoder();
converter = converter.onMalformedInput(CodingErrorAction.REPORT);
converter = converter.onUnmappableCharacter(CodingErrorAction.REPORT);
for (int b = 0x8e; b < 0x100; b++)
if (!(b >= 0x90 && b <= 0x9f)) {
ByteBuffer in = ByteBuffer.wrap(new byte[] { (byte)b });
try {
CharBuffer out = converter.decode(in);
System.out.print("0x"+toHexString2(b)+" 0x");
for (int j = 0; j < out.length(); j++) {
if (j > 0)
System.out.print(" 0x");
System.out.print(toHexString4(out.charAt(j)));
}
System.out.println();
} catch (CharacterCodingException e) {
}
}
}
}
---------- END SOURCE ----------