Я наткнулся на следующий код в NestedRuntimeException в org.springframework.core:
static {
NestedExceptionUtils.class.getName();
}
Какая польза от наличия такого блока?
Ответ 1
Он будет eagerly загружать класс NestedExceptionUtils чтобы избежать тупика загрузчика. Сообщалось об ошибке (SPR-5607) "Нетривиальный NestedRuntimeException.getMessage() может вызывать взаимоблокировки в OSGi", и это решение для той же проблемы.
Отредактировано:
Он также упоминается в исходном коде как комментарий. Для получения полного документа с исходным кодом перейдите по ссылке. Вот часть исходного кода класса NestedRuntimeException.
static {
// Eagerly load the NestedExceptionUtils class to avoid classloader deadlock
// issues on OSGi when calling getMessage(). Reported by Don Brown; SPR-5607.
NestedExceptionUtils.class.getName();
}