2009年10月17日

バグバグバグ、休日蒸発中

テーブル作成
  ↓
データ登録(時間かかる)
  ↓
テスト集計
  ↓        ↓
いけそうだ   データがおかしい
  ↓        ↓           ↓
ブログを書く  SQLがおかしい  プログラムのバグ発見!
  ↓        ↓           ↓
最終チェック  テスト集計に戻る   はじめに戻る
  ↓
やっぱりデータがおかしい
  ↓
ブログの記事をゴミ箱へ
  ↓
 以下略
  ・
  ・
  ・
ブログ投稿(永遠にたどり着けない
いくら頑張っても、データ的記事が投稿できない
ハマったバグを二つほど披露します。

javaからデータベースにデータを登録する部分で

PreparedStatement pstmtGamePlayer = ...
int[] junni = analizer.getJunni();
for (int p = 0; p < p_count; p++) {
pstmtGamePlayer.setInt(1, analizer.game_id);
pstmtGamePlayer.setInt(2, p);
...
pstmtGamePlayer.addBatch(); // あとでまとめて登録
}

// トランザクションを開始
db.begin();
pstmtGameInfo.executeUpdate();
pstmtGamePlayer.executeUpdate();
db.commit();


こんな、コードを書いた所、1ゲームにプレイヤーが一人って状態になってました。
つまり、addBatch()がadd的に動いてくれていなくて、最後のプレイヤーのみ登録されていた感じ。
なんで?
でも、集計は結構まともに出来るもんでかなり長い間気がつきませんでしたよ(泣
その間のデータやブログの記事、SSはすべてゴミ箱へ…

さらに、最後に直したバグは、立直後に加槓した時局だけ、データがおかしくなる不具合でした。
この条件に当てはまるデータはたくさんあるんですが
約10万試合80万局で2局だけ、待ち牌の残りが0なのに和了してまして何とか気がつけました。
これも長い間気がつかず、その間のデータや…以下略

つづく...
posted by idaten! at 23:33| Comment(0) | TrackBack(0) | プログラミング
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32988436
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック