升级后运行测试时出现错误obj.javaClass.`package`

升级后运行测试时出现错误obj.javaClass.`package`,java,unit-testing,corda,Java,Unit Testing,Corda,我刚从corda 3.3升级到4.0,然后我所有的合同和流程测试开始失败。在我定义事务(添加oputput和input SATATE时的事务生成器对象)的那些行中,这些都失败了 我得到以下错误: obj.javaClass.包不能为空 当TransactionBuilder试图在事务中查找StatePointer时,出现了一个问题,而包名为null(查找包的逻辑错误,因为它正在考虑并调用源代码中为null的内容)。提醒您StatePointer仅在Corda平台开源4.0中发布。 我建议您将Co

我刚从corda 3.3升级到4.0,然后我所有的合同和流程测试开始失败。在我定义事务(添加oputput和input SATATE时的事务生成器对象)的那些行中,这些都失败了

我得到以下错误:

obj.javaClass.
不能为空


当TransactionBuilder试图在事务中查找StatePointer时,出现了一个问题,而包名为null(查找包的逻辑错误,因为它正在考虑并调用源代码中为null的内容)。提醒您StatePointer仅在Corda平台开源4.0中发布。 我建议您将CordaApp升级到Corda4.1版本,因为它于2019年3月7日修复,仅在Corda4.1中发布

您的日志应该记录如下内容:

obj.javaClass.
不能为空
java.lang.IllegalStateException:obj.javaClass.
package
不能为空
net.corda.core.internal.StatePointerSearch.handleObject(StatePointerSearch.kt:75)
在net.corda.core.internal.StatePointerSearch.handleField(StatePointerSearch.kt:85)
在net.corda.core.internal.StatePointerSearch.search(StatePointerSearch.kt:92)
位于net.corda.core.transactions.TransactionBuilder.resolveStatePointers(TransactionBuilder.kt:494)
net.corda.core.transactions.TransactionBuilder.addOutputState(TransactionBuilder.kt:568)

有关更多信息:


查看2019年3月7日实现的提交,handleObject(obj:Any?)方法试图在packageName属性中获取名为“name”的属性,但“name”属性为null。

当TransactionBuilder试图在事务中查找StatePointer,而包名为null时,这是一个问题(查找包的逻辑错误,因为它正在考虑并调用源代码中为null的内容)。提醒您StatePointer仅在Corda Platform Open Source 4.0中发布。 我建议您将CordaApp升级到Corda4.1版本,因为它于2019年3月7日修复,仅在Corda4.1中发布

您的日志应该记录如下内容:

obj.javaClass.
不能为空
java.lang.IllegalStateException:obj.javaClass.
package
不能为空
net.corda.core.internal.StatePointerSearch.handleObject(StatePointerSearch.kt:75)
在net.corda.core.internal.StatePointerSearch.handleField(StatePointerSearch.kt:85)
在net.corda.core.internal.StatePointerSearch.search(StatePointerSearch.kt:92)
位于net.corda.core.transactions.TransactionBuilder.resolveStatePointers(TransactionBuilder.kt:494)
net.corda.core.transactions.TransactionBuilder.addOutputState(TransactionBuilder.kt:568)

有关更多信息:

查看2019年3月7日实现的commit,handleObject(obj:Any?)方法试图在packageName属性中获取名为“name”的属性,但“name”属性为null

ledger(ledgerServices, l -> {
    l.transaction(tx -> {
        tx.input(fooContract.foo_CONTRACT_ID, fooContractState);
        tx.command(Arrays.asList(node1.getPublicKey(),   
                   node2.getPublicKey()), 
                   new fooContract.Commands.dummyCommand()); 
        // Correct type.
        return tx.verifies();
    }
}