之间的流执行 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
,这将根据逻辑创建状态。关于国家的成功创建,我们称之为 subFlow
即 UpdateInitiatorFlow
,它将在另一个状态中更新一些详细信息。在成功执行 subflow
它返回到主流并返回响应,但出现上述错误。
**corda版本:4.5
数据库:postgresql**
要处理警告,请使用以下注解:
@Suppress(names = "unused")
@SuppressWarnings("unchecked")
@Suspendable
有没有什么方法来处理警告和错误相关的 FiberDeserializationChecker
?
1条答案
按热度按时间sdnqo3pr1#
在cordaledger slack上放置一些指针。
错误与流的暂停有关,即流检查点。当恢复流时,某些资源(可关闭的)无法恢复,因此应该在一个单独的方法中分离,并放入一个不带注解的单独方法中
@Suspendable
.某些自定义模式已经被定义,这可能会导致问题,因为当自定义模式被注解掉时问题不会出现。克服这一点的建议是,在单独的方法中添加与访问模式相关的逻辑
@Suspendable
注解。