[pgsql-jp: 32891] Re: V7.4.2のJDBC でConnectエラー( IllegalArgumentException)

The Murayama locutus @ pg8.so-net.ne.jp
2004年 5月 2日 (日) 18:07:24 JST


(株)NETGENEの村山です.

PostgreSQLの方は初心者ですが,Javaの方でちょっと気になる
ことがあるのでコメントしておきます.

>   99999:Something unusual has occured to cause the driver to fail. Pl
>   ease report this exception: Exception: java.lang. 
>   IllegalArgumentException
> Stack Trace:
> 
> java.lang.IllegalArgumentException
>         at java.nio.Buffer.position(Buffer.java:218)
>         at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:
> 575)
>         at java.lang.StringCoding$CharsetSD.decode(StringCoding.java:
> 186)
>         at java.lang.StringCoding.decode(StringCoding.java:224)
>         at java.lang.StringCoding.decode(StringCoding.java:230)
>         at java.lang.String.<init>(String.java:371)
「<init>」はStringのインスタンス初期化メソッド(コンストラクタ+α)です.
これを見る限りStringの初期化の途中で文字コードのデコーダから
java.nio.Bufferに渡されているインデックスが不正なもの
(0 <= mark <= position <= limit <= capacityを満たさないposition)
が渡されているのが原因でしょう.

問題なのは「なぜそのような不正なpositionが渡されているか?」なのですが,
そこまで来るとちょっと分かりかねます.仮に日本語コードが原因だとしても,
それがドライバの仕様なのかバグなのか,はたまたJDKのバグなのかは分かりません.

> 
> ちなみに、同様の現象がここにも記載されております。
> これと同様だと思われます。
> (勝手にリンクしたらまずいかも??)
> http://www.jajakarta.org/kvasir/bbs/technical/494
ちょっと「java.nio.charset.CharsetDecoder.decode」で検索して
みたら興味深いものがありました.

[Rumble-jp-dev] BattleManagerBean.java でエラー

http://lists.sourceforge.jp/mailman/archives/rumble-jp-dev/2003-May/thread.html#583
http://lists.sourceforge.jp/mailman/archives/rumble-jp-dev/2003-May/000583.html
http://lists.sourceforge.jp/mailman/archives/rumble-jp-dev/2003-May/000573.html

とりあえず文字コード絡みの可能性は高いと思います.

ある文字が入っている時だけエラーになり,それが含まれていない
場合はエラーにならないとすれば,再現性が低いのも頷けます.

-- 
村山敏清 株式会社ネットジーン 〒164-0001 
東京都中野区中野3-33-3 インツ中野ビル 5F
E-mail:murayama @ netgene.co.jp 
TEL:(03)5328-3670 FAX:(03)5328-3673
http://www.netgene.co.jp/





pgsql-jp メーリングリストの案内