ひでっぷの技術メモ

はてなダイアリーから移行しました

mysqlでの不思議なエラー

mysql4.0.18で不思議なエラーが返って来て参ってます・・・。
JavaからあるテーブルのデータをSELECT文で取得するとごくごくまれーに以下のエラーが


java.sql.SQLException : Error during query : Unexpected Exception :
java.lang.ArrayIndexOutOfBoundsException message given : 23

毎回特定のテーブルのみ。他のテーブルでは出ていません。
テーブルのrepairなんかもしてみましたが効果なし。
ネットで検索してみても日本語のサイトではひっかかりません。
英語のサイトでかろうじてmysqlconnectorのエラーでは?的な内容がありました。
mysqlconnectorのバグだとしてもmysqlのバージョンが4.0系と古いこともありバグ修正は期待できないだろうし・・・。
このテーブルには現在データ7件ほどしか入っておらず、ほとんど追加修正のないマスタデータなので
今のところSQLExceptionが返って来たときには、取得に成功した過去のデータを返すようにしています。
でも、根本解決になっていないから気持ち悪い・・・
何かいい情報はないかなあ・・・。

4.1や5.0を使用しろって?わかってるんだけどなかなか・・・

[2008.2.21 19:52 追記]
その後ソースコードを調べてみたところ、別スレッドから同一メソッド(DBのデータ取得)を頻繁に呼び出していることがわかりました。
しかもこのメソッドsynchronizedじゃなかったのでこりゃおかしくなるかもしれません・・・。
ってことでとりあえずこのメソッドをsynchronizedにして様子を見てみます。