eclipse の FindBugs プラグインを使ってみた

[ThinkIT] 第5回:FindBugsプラグイン (1/3)
面白いねえ。バグを生みやすいパターンかどうかをチェックしてる。試しに kuzha を検査してみた。

private final KuzhaClassLoader loader = new KuzhaClassLoader();

クラスローダはdoPrivilegedブロックの中でのみ作成可能です。

DataOutputStream out = new DataOutputStream(new FileOutputStream(filepath));

メソッドでストリームのクローズに失敗する可能性があります。

throw makeOperationException(
    String.format("%s % %s", toString(left), toString(right)));

Number of format-string arguments does not correspond to number of placeholders

for(String key: keys.keySet()) {
    KuzhaObject value = keys.get(key);

entrySetイテレータを使用すべき場所での非効率なkeySetイテレータの使用。

this.argnames = argnames;
this.defaultArguments = defargs;

可変オブジェクトへの参照を自らに格納してしまうことにより内部表現を暴露してしまう可能性があります。

面白いなぁ。