2012-01-24 7 views
1

私はいくつかの自動化されたレビューツールを必要とするプロジェクトに入っています。先週、アプリのサーバーをダウンさせたコードにSystem.exit()が見つかりました。巨大なJavaプロジェクト内でSystem.exit()コードを捕捉する方法は?

FindBugsはSystem.exit()を捕まえていないようです。他にもSystem.exit()を捕まえることができるツールはありますか?

+2

'grep -R System.exit src' –

+0

@Tom、それは低いぶら下がっている果物の世話をしますが、リフレクションを通して呼び出しをキャッチしません。また、 'Runtime.getRuntime()。exit(int)'もチェックする必要があります。 –

+0

Eclipseはまた、リフレクションに役立たないが、メソッドを検索することもできます。 – Bombe

答えて

6

ホワイトリストに記載されていないものがSystem.exit()を呼び出すのを防ぐセキュリティマネージャを設定するにはどうすればよいですか?あなたのアプリケーションサーバにセキュリティマネージャがあると思います。セキュリティポリシーを調べてください。自分自身を展開する場合は、checkExit(...)

2

findbugsに加えてpmdを使用することを検討しましたか? PMDはjavaコードをxmlに 'コンパイル'し、それに対してxpathクエリを実行します。例えば

 
//VariableDeclarator 
[parent::FieldDeclaration] 
[../Type/ReferenceType 
    /ClassOrInterfaceType[@Image='SimpleDateFormat'] 
    and 
    ..[@Static = 'true'] ] 

は静的に定義されてSimpleDateFormatオブジェクト(スレッド安全でない方法で使用することができるもの)を同定するためのルールです。

関連する問題