corda-fiberdeserializationchecker错误处理

2ic8powd  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(276)

之间的流执行 account A on Node A 响应者是两个成员,即。 account B on Node B 以及 Node C 正在成功执行,但它会抛出警告音和与 FiberDeserializationChecker 在流执行结束时。

[ERROR] 13:42:00+0530 [FiberDeserializationChecker] interceptors.FiberDeserializationChecker. - Encountered unrestorable checkpoint! - java.lang.NullPointerException
Serialization trace:
childProgressTrackers (net.corda.core.utilities.ProgressTracker)
progressTracker (com.blockchain.corda.flows.initiator.UpdateInitiatorFlow)
this$0 (com.blockchain.corda.flows.initiator.UpdateInitiatorFlow$2)
second (kotlin.Pair)_allStepsCache (net.corda.core.utilities.ProgressTracker)
progressTracker(com.blockchain.corda.flows.initiator.CreateInitiatorFlow)logic (net.corda.node.services.statemachine.FlowStateMachineImpl) [errorCode=7sftly, moreInformationAt=https://errors.corda.net/OS/4.5/7sftly]

流程执行如下:
触发 CreateInitiatorFlow ,这将根据逻辑创建状态。关于国家的成功创建,我们称之为 subFlowUpdateInitiatorFlow ,它将在另一个状态中更新一些详细信息。在成功执行 subflow 它返回到主流并返回响应,但出现上述错误。

**corda版本:4.5

数据库:postgresql**
要处理警告,请使用以下注解:

@Suppress(names = "unused") 
@SuppressWarnings("unchecked")
@Suspendable

有没有什么方法来处理警告和错误相关的 FiberDeserializationChecker ?

sdnqo3pr

sdnqo3pr1#

在cordaledger slack上放置一些指针。
错误与流的暂停有关,即流检查点。当恢复流时,某些资源(可关闭的)无法恢复,因此应该在一个单独的方法中分离,并放入一个不带注解的单独方法中 @Suspendable .
某些自定义模式已经被定义,这可能会导致问题,因为当自定义模式被注解掉时问题不会出现。克服这一点的建议是,在单独的方法中添加与访问模式相关的逻辑 @Suspendable 注解。

相关问题