2016-06-19 2 views
0

Хотя пошагового java.util.logging.LogManager кода в отладчике я обнаружил, что за счет исключения в строке 1301LogManager игнорирует включенные утверждения

try (final InputStream in = new FileInputStream(fname)) { 

поймать блок в строке 407

assert false : "Exception raised while reading logging configuration: " + ex; 

должен, но не бросать AssertionError ,

Варианты VM: -ea -Djava.util.logging.config.file=logging.properties.

+0

http://www.yegor256.com/2016/06/17/dont-use-java-assertions.html –

+0

LogManager был реструктурирован с годами. Какая версия этого источника? – jmehrens

+0

@jmehrens Последний из них http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/logging/LogManager.java?revcount=120#l407 – user2418306

ответ

0

Вы должны использовать -esaenable assertions in all system classes. За документацией -ea[:[packagename]...|:classname]:

Опция -enableassertions (-ea) относится ко всем загрузчиков классов и классов системы (которые не имеют загрузчик классов). Существует одно исключение из этого правила: если опция не содержит аргументов, то она не применяется к системным классам. Это упрощает включение утверждений во всех классах, кроме системных классов. Параметр -enablesystemassertions предоставляет отдельный переключатель для включения утверждений во всех системных классах.

Вот тест, чтобы проверить поведение, которое вы должны работать и без -esa:

public static void main(String[] args) { 
    System.out.println(LogManager.class.desiredAssertionStatus()); 
} 

Другим вариантом было бы просто включить утверждения для пользовательского кода и просто LogManager, установив команду line to: -ea -ea:java.util.logging.LogManager

+0

Каков здравый смысл, связанный с не найденным файлом конфигурации? – user2418306

+0

@ user2418306 Похоже на попытку превратить предупреждения в сбои с помощью командной строки. В некоторых случаях вы можете захотеть, чтобы JVM прервалась, но в других случаях может быть более важным, чтобы основной запуск выполнялся, даже если кадрирование искалечено. – jmehrens

+0

Что это за * другие случаи *? – user2418306

Смежные вопросы