OpenJDK JAXB实现中的奇怪NullPointerException Catch

时间:2012-12-03 23:20:47

标签: jaxb nullpointerexception openjdk

我在OpenJDK JAXB中发现了一些奇怪的代码:

com.sun.xml.internal.bind.v2.model.impl.ModelBuilder

    try {
        XmlSchema s = null;
        s.location();
    } catch (NullPointerException e) {
        // as expected
    } catch (NoSuchMethodError e) {
        ...
    }

有人可以解释他们为什么这样做吗?或者这只是一个需要修复的错误代码。

1 个答案:

答案 0 :(得分:3)

他们使用此代码作为测试来确定正在使用哪个版本的JAXB (JSR-222) API。 location参数已添加到JAXB 2.1中的@XmlSchema,如果抛出NoSuchMethodError,则使用JAXB 2.0 API。

见第158-177行

Javadoc - @ XmlSchema.location