我偶然发现了NestedRuntimeException
中org.springframework.core
中的以下代码:
static {
NestedExceptionUtils.class.getName();
}
有这样一个块有什么用?
答案 0 :(得分:27)
它将eagerly
加载NestedExceptionUtils
类以避免类加载器死锁。报告了一个错误(SPR-5607)“非平凡的NestedRuntimeException.getMessage()可能导致OSGi死锁”,这是同一问题的解决方案。
编辑:
在源代码中也提到它作为注释。有关完整源代码文档,请关注link。以下是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();
}