在Corda流测试中获取节点标识信息时出现Quasar异常

在Corda流测试中获取节点标识信息时出现Quasar异常,corda,Corda,我有使用(测试)密钥管理服务执行流逻辑以生成新参与方和证书的流测试。在安装时,我创建了一个模拟网络实例以及多个StartedMockNode实例。我们的项目是用Kotlin1.1.60编写的,使用corda-3.3开源(OS),运行在JDK1.8_192上。在IntelliJ Idea 2019.3中运行测试时,我从quasar库中得到以下异常 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2217)

我有使用(测试)密钥管理服务执行流逻辑以生成新参与方和证书的流测试。在安装时,我创建了一个模拟网络实例以及多个
StartedMockNode
实例。我们的项目是用Kotlin1.1.60编写的,使用corda-3.3开源(OS),运行在JDK1.8_192上。在IntelliJ Idea 2019.3中运行测试时,我从quasar库中得到以下异常

    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2217) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:5060) ~[guava-21.0.jar:?]
    at net.corda.node.utilities.NonInvalidatingCache.get(NonInvalidatingCache.kt) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase.set(AppendOnlyPersistentMap.kt:53) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase.addWithDuplicatesAllowed(AppendOnlyPersistentMap.kt:100) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase.addWithDuplicatesAllowed$default(AppendOnlyPersistentMap.kt:99) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.services.identity.PersistentIdentityService.verifyAndRegisterIdentity(PersistentIdentityService.kt:139) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.services.api.IdentityServiceInternal$DefaultImpls.justVerifyAndRegisterIdentity(IdentityServiceInternal.kt:9) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.services.identity.PersistentIdentityService.justVerifyAndRegisterIdentity(PersistentIdentityService.kt:31) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.services.keys.KMSUtilsKt.freshCertificate(KMSUtils.kt:50) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.services.keys.E2ETestKeyManagementService.freshKeyAndCert(E2ETestKeyManagementService.kt:56) ~[corda-node-3.3-corda.jar:?]
    ...
Caused by: java.lang.IllegalStateException: Was expecting to find transaction set on current strand: Fiber@10000001:[9b1b68cc-578e-479d-8584-6376c1f3bb89][task: co.paralleluniverse.fibers.RunnableFiberTask@496179b9(Fiber@10000001), target: null, scheduler: net.corda.node.services.statemachine.StateMachineManagerImpl$FiberScheduler@7d174b11]
    at net.corda.nodeapi.internal.persistence.DatabaseTransactionKt.getContextTransaction(DatabaseTransaction.kt:14) ~[corda-node-api-3.3-corda.jar:?]
    at net.corda.nodeapi.internal.persistence.DatabaseTransactionKt.currentDBSession(DatabaseTransaction.kt:9) ~[corda-node-api-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase$addWithDuplicatesAllowed$1.invoke(AppendOnlyPersistentMap.kt:101) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase$set$existingInCache$1.call(AppendOnlyPersistentMap.kt:58) ~[corda-node-3.3-corda.jar:?]
    at net.corda.node.utilities.AppendOnlyPersistentMapBase$set$existingInCache$1.call(AppendOnlyPersistentMap.kt:15) ~[corda-node-3.3-corda.jar:?]
    at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:5065) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[guava-21.0.jar:?]
    ... 27 more

我的代码在流程或测试逻辑上与corda文档中推荐的方法没有任何明显的偏差。有关如何解决此问题的任何想法?

切换IntelliJ设置似乎可以解决此问题。在“Preferences”->“Build,Execution,Deployment”->“Gradle”->“Build and run using”到“Gradle”而不是“IntelliJ Idea”中更新测试设置,并且在“run tests using”到“Gradle”而不是“IntelliJ Idea”的正下方,流测试按预期成功运行。无需进行其他更改