2008年08月05日(火) [長年日記]
■ [life] 雷でケーブルテレビが映らなくなった
雷がすごい一日。テレビを観ている最中、ビガッと光りバーンと大きな音がしてどこかに落雷したみたい。
その直後からテレビが映らなくなった。この家はケーブルテレビなんだけど、番組を受信できないというようなエラーが表示されていた。
何をどうしても映らないのでウェブで調べたところ、よくある原因は落雷でブレーカーが落ちることみたい。家の中のブレーカーは正常で、テレビ以外の機器は皆動作していた。ケーブルテレビは外に別のブレーカーがあるのが普通なようだったので家の周りを調べてみたら、「共用ブレーカー」という箱があった。開けてみるとブレーカーが「切」状態になっていたので、「入」に直したらテレビが映った。
2008年08月11日(月) [長年日記]
■ [java] NetBeans 6.1でJUnitの実行結果を表示
NetBeansを使っている。個人的には使いにくいと感じていて、Eclipseの方が出来がいいと思う。が、jViプラグイン があるのでNetBeansを使い続ける。
build.xmlにjunitタスクを実行するターゲットを書いてNetBeansからそのターゲットを実行したとき、「JUnitテスト結果」というペインに「実行されたテストはありません」としか表示されずに困ったのでメモ。
解決方法は、build.xmlのjunitタスク内に
<formatter type="plain" usefile="no"/>
のような行を追加することみたい。typeは何でもよくて、「usefile="no"」の方が重要。usefileのデフォルト値はtrueなので、明示的にオフにしないとNetBeansがテスト結果文字列を取得できないということのようだ。NetBeansというよりAntの使い方の問題か。
2008年08月22日(金) [長年日記]
- 仕様がなかなかfixしない。
■ [java] TimerTask#run()内で例外をthrowしてはダメ
java.util.Timerを初めて使った。ら、
java.lang.IllegalStateException: Timer already cancelled. at java.util.Timer.sched(Timer.java:354) at java.util.Timer.schedule(Timer.java:170)
という例外が投げられてしまいTimerTaskをセットできず困った。Timerのキャンセルなんかしていないのに。
原因は、TimerにセットしたTimerTaskのrun()内で例外が投げられていたからみたい。TimerTask#run()内で例外が投げられると、それを実行するTimerはキャンセルされてしまう(止まってしまう)ようだ。
なので、TimerTaskのサブクラスはrun()内で例外を投げないよう気を付けて実装しないといけない。
2008年08月28日(木) [長年日記]
- 書き忘れていたけど、今月は北京オリンピックがあった。もう終わっている。
- 北島が優勝した100m平泳ぎが一番面白かったかなあ。インタビューで感極まっていたのが印象的。
- ソフトボールも盛り上がっていたが、おれにはソフトボールの楽しさがよくわからない。
■ [java] S2Daoではsqlファイルのコピーを忘れてはダメ
S2Daoを使うことになった。Seasarは初めて使う。色々面倒。
んで、S2Dao用に作ったDaoインタフェースのupdateメソッドを呼び出しているのに、findが実行できないというような例外が投げられる問題が発生し困った。
半日調べて、原因はDao用に用意するsqlファイルがクラスパスに含まれていないことだとわかった。sqlファイルはDaoクラスのソースファイルと同じディレクトリに配置しており何もしないと実行時のクラスパスには含まれない。ビルド時にclassファイルと同じディレクトリにコピーする処理が必要で、それは忘れがちな気がする。
というか、実行時にsqlファイルが見つからないときにそれが分かるような例外をS2Daoが投げてくれればいいのに、そうじゃない所がよくない。