FindBugs

Ref: FindBugs – A Bug Pattern Detector for Java

便利なEclipseプラグインらしい。とりあえず使ってみた。でもなぜか正常に動いてないような気がする。ソースを持ってきて覗いてみたらGeneric機能使っているようなので、Java2 1.4 ではコンパイルできない…。

仕方がないので、all releaseからFindBugsの 0.7.0 をダウンロードして使うようにしてみたところ、動作した。0.7.1はTigerでないと動かないのかもしれない。

続きを読む

Eclipse plugins

Eclipse plugins についてめも
jadを使うと、ソースコードがどのようにバイナリ化されているかわかって楽しいかも。GUIとして、FrontEndがあり、同じサイトからダウンロードできるようになっている。また、Eclipseのプラグインは、jadclipseというのがある。

ちょっと別口だが、metricsというのも面白そうだ。

Lock File

Servlet/JSPでロックファイルを作成するにはどうするんだろうと思ってちょっと調べてみた。

テキストファイルへの同時書き込みを防ぐという手もあるようだが、10分以上たったロックファイルを強制的に削除したり、delete()メソッドを使っているあたりがちょっとあやしい。ロックファイルプロトコルの実装にはJava2 SDK のドキュメントではFile.createNewFile()とFile.deleteOnExit()とを組み合わせるというような記述があるので、そうした方がいいだろう。しかし、File.deleteOnExit()はVMが終了するときにしかファイルを削除しないのでServlet/JSPでは使えない。

もうちょっと調べてみたところ、java.nio.channels.FileChannel.lock() を使うのが良さそうだ。しかしこれも「ファイルロックは Java 仮想マシン全体のために保持されます。これらは、同一仮想マシン内の複数スレッドによるファイルへのアクセスを制御するには適していません。」なんて書かれている。もっと言えば、「他の言語で書かれたプログラムが動作するプロセスのためにも保持される」のだろう。ちょっと強力すぎる感じだ。

結局のところ、マルチスレッド対応のSingletonを用意して、そいつにキーとしてファイル名を渡すとロック用オブジェクトを返すようなメソッドを持たせて、synchronizedで排他制御するのが良いのでは、という結論に達した。

カテゴリー: Java

Subversion

Ref: Subversion
Ref: Subversion 批判に対する反論

Apache + WebDAV + Subversion は試してみる価値がありそうだ。研究で分散開発環境を構築してみたが、結局CVS, WebDAV を一番良く利用して、Wiki, Weblogは思ったよりも活用されなかった。ユーザーの嗜好もあるだろうが、良く利用する機能については、新しいものを評価しておく価値はあるだろう。問題はEclipseから使えるかだが、subclipseなるものがあるので、大丈夫そうだ。

Life

交通事故には気をつけたい。
信号無視で見通しの悪い信号を横切る自転車や、交通量の多い道路で横断歩道を使わずに横切る人を、最近よく見かける。交通マナーも低下しているのだろう。しかし、どんな理由であれ交通事故というのは悲惨な結果になることが多いので、起こさないように気をつける、まきこまれないように気をつける、という意識が必要だと改めて感じた。

しばらく気力がでないかも。