PRODUCT: EZServlet Package

J2SDK 1.4.1_02付近のバージョンにおけるダブルバイト文字読み込み不具合について

EZServletによるサーブレットの初期化時にプロパティファイルを読み込みますが、J2SDK1.4.1_02及び、その付近のバージョン、それらのバージョンをベースとするサードベンダーの提供するJVM上で稼動する場合で、かつ、プロパティファイルの文字コードセットと環境デフォルトの文字コードセットが異なる場合に、プロパティファイルに特定の文字列が含まれていると、プロパティファイルのロードに失敗することがあります。これはJVMのテキストファイル読み込みロジックの不具合に起因するもので、EZServletのバグではありません。

弊社では以下の環境について、不具合を確認しました。
いずれも、Linux環境にてSJISの"解除"(89 f0 8f 9c)という文字列を含むファイルをLANG=ja_JP.eucJPである状態で読み込むテストを行いました。

ベンダー 製品
Sun Microsystems J2SDK1.4.1_02
BEA Systems JRockit 8.1sp2, JRockit 8.1sp2rp1

これらの環境の組み合わせを使用するつまり、上記のJVMをデフォルトエンコーディングが"EUCJIS"である環境で稼動させ"SJIS"のプロパティファイルを使用する場合は、EZServlet 2001.1.17以降を使用し、javaコマンドラインオプションにより
-DCoolProperties.EncodingType=Shift_JIS
のように、CoolPropertiesの読み込み時のデフォルトエンコーディングタイプを指定することで、問題を回避できます。

また、以下の環境については、全く同じデータでも、特に対処することなく問題が発生しないことを確認しました。

ベンダー 製品
Sun Microsystems J2SDK1.4.1_06, J2SDK1.4.2_02

 

Sun, Sun Microsystems�͕č�����т��̑��̍��ɂ�����č�Sun Microsystems, Inc.�̏��W�܂��͓o�^���W�ł��B Java����т��̑���Java���܂ޕW�͂́A�č�Sun Microsystems, Inc.�̏��W�ł���A���Ђ�Java�u�����h�̋Z�p���g�p�������i���w���܂� �B


(C)1998- ngMAT Corporation
All RightsReserved.