BadlyOverriddenAdapter
FindBugsには、BadlyOverriddenAdapterというディテクタがあり、以下のようなコードを検出してくれる。
public class MyAdapter extends MouseInputAdapter {
public void mouseClicked() {
// Event hander for mouse click.
}
}
引数のMouseEventを忘れているために、オーバーライドしたつもりが失敗というケースだ。ところが最新版の1.1.3で検出できなくなっていたので、MLで報告してみた。調べたところ、ディテクタの以下の部分で
public void visit(JavaClass obj) {
...
JavaClass superClass = obj.getSuperClass();
...
Method[] methods = superClass.getMethods();
なぜかmethodsに1個しかメソッド(コンストラクタのみ)が入ってこない。
すぐDaveから返事があって「こっちではちゃんと動いてるよ。1.5だけど」とのこと。確かめてみると、確かに1.5だとちゃんと動く。でも1.6.0だとダメみたいだ。どうもbcel/asm回りのバグっぽいな。ただFindBugsはこれらのバイトコード操作ライブラリを独自拡張しているので、そのあたりの問題なのかもしれない。
Monkey's AudioからFLACに移行。
どうもMonkey's Audioだと、Linux用の良いプレーヤが無いので、FLACに移行決定。Monkey's Audioを呼び出して、WAVにデコードしてからFLACを呼び出してエンコードという処理を、ディレクトリを再帰的に辿って実行するプログラムを適当にJavaで書いて流してみたところ、バリバリとエラーになる。見てみると、どうも昔エンコードしたデータが、最新(v3.99)のMonkey' Audioだとデコードできないケースがある模様。趣味で書いているプログラムだとしょうがないんだろうけど、この手のソフトウェアで後方互換性が無いというのは致命的じゃないか? FLACは大丈夫なんだろうか。まぁ、この時点で気付いただけでも、よしとしよう。
「東京の空と上海の空」
「東京の空と上海の空」。相互リンクのお申し込みをいただいたサイト。
主に上海訪問での体験がつづられているのだけど、特にご自分の内面を飾らず、包み隠さずに吐露されているせいか、知らず知らずのうちに話に引き込まれてしまう。不思議な魅力を持った文章だ。





