新人さん歓迎会。
1個下の後輩に、うちの新人2人と、お客さんとこの新人3人の合計5人のチームの
リーダーをさせている。
今日はそのチームの宴会。
なはずだったんだけど、俺だけ仕事。
データベースの情報を暗号/復号してくれるサーバー的なソフトウエアがあるんだけど、
そいつに更新系のSQLを配列に溜め込んでネットワークのラウンドトリップも1回で、
ガツンと実行するってのを取り込んでもらってて。
ってか今までは addBatch/executeBatch しても、
結局そのソフトウエアからデータベースに、1件1件executeしてるだけだった。
相当そのベンダーに文句言って、絶対デグレードしないように、
きっちりバージョンアップしやがれ!なんてことになってたんだけど。
レグレッションテストやってたら、そいつが思いっきりデグレードしやがって。
ドライバをデコンパイルしてソース追っかけたら。
考慮もないひどいコーディング。ってか単体テストやったか?
まぁひどい話ですよ。
とりあえず、俺の解析結果をそのベンダーに送りつけて。
そしたら、もう一発問題が発覚。
このプロダクト使うと、StatementとResultSetは運命共同体。
そうじゃないとExceptionをスローしちゃったり。
例えばgetResultSetとかいうメソッド作ったりしますよね?
executeQueryして受け取ったResultSetをreturnして、
受け取った側でResultSetをnextしながらwhile文で〜、
なんて一般的だと思うんです。
そしたらreturnした後に、StatementがGCの対象になった時に、
finalizeメソッドでResultSetもサヨナラされちゃうようになってると。
あーあー。なんかムカつく。
俺全然悪くねぇのによー、なんて最強にフテくされ。
でも、遅れて飲み会にいって、ちゃっかり盛り上がっちゃうわけです。
もうお客さんとも相当仲良くなったから。
飲み会もフツウに楽しめる。
帰りはお客さんの新人さんと一緒になって。
なんだか話してるだけで、目の輝きが違うわけです。
俺にもそんな時代があったんだよなぁなんて。。
コメント