カルテ保存後ウインドウを閉じる(多分完結編)
サーバとの通信に使う DBTask は,Chart が存在することを前提にした Thread になっている。カルテ保存後に EditorFrame を閉じるようにカスタマイズしてしまっため,EditorFrame を閉じた後すかさず Chart をショートカットキーを使って素早く閉じた場合など,DBTask が Chart を閉じた後にも残っていて,消えかけの Chart にアクセスする可能性があるのではないかということがとても気になっていた。(DBTask は普通は一瞬で終わるので問題ないはずなのだが,たまに時間がかかったりする可能性がある)
そこで,データベースにアクセスするスレッドをまとめて ExecutorService で管理し,さらに,その Executor の task を Chart を閉じるときに shutdown し,shutdown されたことを確認してから Chart を閉じるようにしてみた。
まとめたスレッドの状況を調べてみたら,シェーマが多いカルテをものすごく素早く閉じたときに DBTask が残ることがあるのを確認できた。でも,普通に操作していたらまず問題にならないので,結局杞憂だったようだ。でもとりあえず,これで「カルテ保存後ウインドウを閉じる」の心配の種は根絶できたと思う。
« FindBugs に指摘されたこと | トップページ | 結局 Java 1.6 へ移行 »
「OpenDolphin」カテゴリの記事
- WildFly 25 へのアップデート(2021.12.21)
- 13年目の運用まとめ(2021.02.04)
- スタンプの簡易表示(2020.09.04)
- Java 1.8.0_261 での apple.awt.brushMetalLook(2020.07.26)
- Undo の充実 (4) StampEditor, StampTree(2020.07.23)