私はいくつかの自動化されたレビューツールを必要とするプロジェクトに入っています。先週、アプリのサーバーをダウンさせたコードにSystem.exit()
が見つかりました。巨大なJavaプロジェクト内でSystem.exit()コードを捕捉する方法は?
FindBugsはSystem.exit()
を捕まえていないようです。他にもSystem.exit()
を捕まえることができるツールはありますか?
私はいくつかの自動化されたレビューツールを必要とするプロジェクトに入っています。先週、アプリのサーバーをダウンさせたコードにSystem.exit()
が見つかりました。巨大なJavaプロジェクト内でSystem.exit()コードを捕捉する方法は?
FindBugsはSystem.exit()
を捕まえていないようです。他にもSystem.exit()
を捕まえることができるツールはありますか?
ホワイトリストに記載されていないものがSystem.exit()
を呼び出すのを防ぐセキュリティマネージャを設定するにはどうすればよいですか?あなたのアプリケーションサーバにセキュリティマネージャがあると思います。セキュリティポリシーを調べてください。自分自身を展開する場合は、checkExit(...)
findbugsに加えてpmdを使用することを検討しましたか? PMDはjavaコードをxmlに 'コンパイル'し、それに対してxpathクエリを実行します。例えば
:
//VariableDeclarator [parent::FieldDeclaration] [../Type/ReferenceType /ClassOrInterfaceType[@Image='SimpleDateFormat'] and ..[@Static = 'true'] ]
は静的に定義されてSimpleDateFormatオブジェクト(スレッド安全でない方法で使用することができるもの)を同定するためのルールです。
'grep -R System.exit src' –
@Tom、それは低いぶら下がっている果物の世話をしますが、リフレクションを通して呼び出しをキャッチしません。また、 'Runtime.getRuntime()。exit(int)'もチェックする必要があります。 –
Eclipseはまた、リフレクションに役立たないが、メソッドを検索することもできます。 – Bombe