静态调用Class.getName()

时间:2018-05-15 05:57:17

标签: java spring osgi

我偶然发现了NestedRuntimeExceptionorg.springframework.core中的以下代码:

static {
    NestedExceptionUtils.class.getName();
}

有这样一个块有什么用?

1 个答案:

答案 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();
}