Как поймать код System.exit () в огромном Java-проекте? - PullRequest
1 голос
/ 24 января 2012

Я вхожу в проект, который нуждается в некоторых инструментах автоматического обзора. На прошлой неделе мы нашли System.exit() в коде, который отключил серверы приложений.

Похоже, что FindBugs не ловит System.exit(). Существуют ли другие инструменты, которые могут поймать System.exit(), которые я могу запустить из eclipse?

Ответы [ 2 ]

6 голосов
/ 24 января 2012

Как насчет настройки диспетчера безопасности, который запрещает звонкам System.exit() что-либо, не занесенное в белый список?Я полагаю, на вашем сервере приложений есть менеджер безопасности;заглянуть в политику безопасности.Если вы выкатываете свои собственные, посмотрите на checkExit(...)

2 голосов
/ 24 января 2012

Рассматривали ли вы использование pmd в дополнение к findbugs? PMD «компилирует» код java в xml и выполняет к нему запросы xpath.

Например:

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

- это правило для идентификации статически определенного объекта SimpleDateFormat (что-то, что может быть использовано небезопасным способом потока).

...