java.lang.VerifyError 在检索关联实体时。 (仅当这是 运行 作为 maven 执行的一部分时才会发生)
java.lang.VerifyError while retrieving associated entities. (Happens only when this is run as part of a maven execution)
我们有这样的代码。
HeaderCDSForPRForGuidedBuying requisitionHeader = readHeaderInternal(draftUUID);
try {
requisitionHeaderAddress = requisitionHeader.getGuidedProcmtReqnDelivAddrOrFetch();
} catch (NullPointerException ex) {
logger.error("Exception occurred: No Address is associated with the requisition header", ex);
}
可以看出,我们首先获取一个实体(header),然后是关联的实体(DeliveryAddress),
虽然这段代码在应用程序或 eclipse 中正常工作,但它在 运行 作为 maven 执行的一部分时中断。我们有 运行 与 Maven 的集成测试,所以它对我们来说失败了。错误是这样的。
java.lang.VerifyError: 堆栈映射与异常处理程序 275 处的映射不匹配
异常详细信息:
地点:
com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler.createError(Ljava/lang/String;Ljava/lang/Object;I)Lcom/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal; @275: 商店
原因:
类型 'org/json/JSONException'(当前帧,堆栈 [0])不可分配给 'java/lang/RuntimeException'(堆栈映射,堆栈 [0])
当前帧:
bci: @42
标志:{}
locals: { 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler', 'java/lang/String', 'java/lang/Object', 整数, 整数, 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal', 'java/lang/String', 'org/apache/http/HttpResponse', 'java/lang/String', ' [Lorg/apache/http/Header;' }
堆栈:{'org/json/JSONException'}
堆栈图框架:
bci: @275
标志:{}
locals: { 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler', 'java/lang/String', 'java/lang/Object', 整数, 整数, 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal', 'java/lang/String', 'org/apache/http/HttpResponse', 'java/lang/String', ' [Lorg/apache/http/Header;' }
堆栈:{ 'java/lang/RuntimeException' }
https://github.com/Wikidata/Wikidata-Toolkit/issues/58 报告了同样的问题。
我相信 link.
中也提到了修复
请修复它,以便我们可以 运行 我们的 Maven 测试没有任何错误。
谢谢,
萨钦
正如 Christoph Schubert 指出的那样,该错误是由依赖关系冲突引起的。引用他的评论:
Both org.json:json
and com.vaadin.external.google:android-json
provide a org.json.JSONException
. The first library has one extending RuntimeException
while the latter provides a checked Exception.
我能想到的唯一解决方案是排除依赖关系树中的两个库之一。
我们有这样的代码。
HeaderCDSForPRForGuidedBuying requisitionHeader = readHeaderInternal(draftUUID);
try {
requisitionHeaderAddress = requisitionHeader.getGuidedProcmtReqnDelivAddrOrFetch();
} catch (NullPointerException ex) {
logger.error("Exception occurred: No Address is associated with the requisition header", ex);
}
可以看出,我们首先获取一个实体(header),然后是关联的实体(DeliveryAddress), 虽然这段代码在应用程序或 eclipse 中正常工作,但它在 运行 作为 maven 执行的一部分时中断。我们有 运行 与 Maven 的集成测试,所以它对我们来说失败了。错误是这样的。
java.lang.VerifyError: 堆栈映射与异常处理程序 275 处的映射不匹配 异常详细信息: 地点: com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler.createError(Ljava/lang/String;Ljava/lang/Object;I)Lcom/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal; @275: 商店 原因: 类型 'org/json/JSONException'(当前帧,堆栈 [0])不可分配给 'java/lang/RuntimeException'(堆栈映射,堆栈 [0]) 当前帧: bci: @42 标志:{} locals: { 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler', 'java/lang/String', 'java/lang/Object', 整数, 整数, 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal', 'java/lang/String', 'org/apache/http/HttpResponse', 'java/lang/String', ' [Lorg/apache/http/Header;' } 堆栈:{'org/json/JSONException'} 堆栈图框架: bci: @275 标志:{} locals: { 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternalResultHandler', 'java/lang/String', 'java/lang/Object', 整数, 整数, 'com/sap/cloud/sdk/odatav2/connectivity/internal/ODataExceptionInternal', 'java/lang/String', 'org/apache/http/HttpResponse', 'java/lang/String', ' [Lorg/apache/http/Header;' } 堆栈:{ 'java/lang/RuntimeException' }
https://github.com/Wikidata/Wikidata-Toolkit/issues/58 报告了同样的问题。 我相信 link.
中也提到了修复请修复它,以便我们可以 运行 我们的 Maven 测试没有任何错误。
谢谢, 萨钦
正如 Christoph Schubert 指出的那样,该错误是由依赖关系冲突引起的。引用他的评论:
Both
org.json:json
andcom.vaadin.external.google:android-json
provide aorg.json.JSONException
. The first library has one extendingRuntimeException
while the latter provides a checked Exception.
我能想到的唯一解决方案是排除依赖关系树中的两个库之一。