@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

1.4.2_10でのJISAutoDetectの対応

1
投稿者投稿内容
がう
会議室デビュー日: 2005/02/03
投稿数: 10
投稿日時: 2005-11-07 13:03
下記のようなコードに対して、
Javaの1.4.2_06〜09、1.5では正常に動作するのですが、
1.4.2_10でのみ、エラーになってしまいます。

原因、回避策等ご存知の方がいらっしゃましたら、
おしえてください。

よろしくお願いします。

コード:
byte[] byt = "あいうえお".getBytes();
String str = new String(byt,"JISAutoDetect");



(実際のPGでは、byt変数にEUCやShift-JISなど様々な文字コードの日本語が入ってきます)

コード:
java.lang.ClassCastException
	at sun.nio.cs.ext.JISAutoDetect$Decoder.decodeLoop(JISAutoDetect.java:126)
	at sun.nio.cs.ext.JISAutoDetect$Decoder.decodeLoop(JISAutoDetect.java:166)
	at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:538)
	at java.lang.StringCoding$CharsetSD.decode(StringCoding.java:192)
	at java.lang.StringCoding.decode(StringCoding.java:230)
	at java.lang.String.<init>(String.java:320)
	at java.lang.String.<init>(String.java:346)
	at Test.main(Test.java:10)


武澤
常連さん
会議室デビュー日: 2004/09/27
投稿数: 31
投稿日時: 2005-11-07 13:33
ソースは正しいようなので、1.4.2_10のバグに思えます。
ちょうど、1.4.2_10のリリースノートに
「JISAutoDetectのisSupportedのパフォーマンスが悪い」
というバグフィックスが掲載されているので、この修正が怪しいですね。

対策は「1.4.2_10を使ってはいけない」ですかね・・・orz。

※にしてもひどいバグだ。
hide
会議室デビュー日: 2003/08/01
投稿数: 3
投稿日時: 2005-11-16 07:42
すでにBugDBに登録されいます。
REGRESSION: ClassCastException in JISAutoDetect.java on 1.4.2_10
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=634834
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2005-11-16 10:17
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6348343
ですね。
早速、voteしました。
hide
会議室デビュー日: 2003/08/01
投稿数: 3
投稿日時: 2005-11-16 10:52
すみません。yuzy様フォローありがとうございます。
がう
会議室デビュー日: 2005/02/03
投稿数: 10
投稿日時: 2005-11-17 02:07
武澤さま、hideさま、yuzyさま

返信ありがとうございました。
バグだったんですね....
1.4.2_10を使わないよう制限することにします
hide
会議室デビュー日: 2003/08/01
投稿数: 3
投稿日時: 2005-12-11 13:03
1.4.2_11でFixのようですね。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6348343
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2006-03-03 13:47
1.4.2_11がようやく出ました。

試してみましたが、直っているようです。
http://java.sun.com/j2se/1.4.2/download.html
1

スキルアップ/キャリアアップ(JOB@IT)