java - 为什么我的子流程会抛出错误? (Java.lang.VerifyError : Bad local variable type)

标签 java kotlin corda

我创建了一个 Oracle 服务来返回随机骰子并签署包含该数据的交易。 Oracle 会跟踪特定状态的唯一标识符,并且只会为任何给定的 UUID 创建一次随机骰子掷骰。

当我触发初始流程(应使用 Oracle 发送和接收数据)时,我收到此错误。

这里是存储库的链接:https://github.com/rogersanick/SettlersOfCordan

重现步骤

  1. 打开项目(不导入)

  2. 在 oracleClient/src/test 目录中运行测试 - oracleReturnsARandomDiceRoll (确保在运行时配置中包含 -ea -javaagent:PATH/TO/QUASAR.jar)

java.lang.VerifyError: Bad local variable type
Exception Details:
  Location:
    com/oracleClient/flows/RollDiceFlow.call()Lnet/corda/core/transactions/SignedTransaction; @937: aload
  Reason:
    Type top (current frame, locals[19]) is not assignable to reference type
  Current Frame:
    bci: @937
    flags: { }
    locals: { 'com/oracleClient/flows/RollDiceFlow', 'net/corda/core/flows/FlowSession', 'com/oracleService/state/DiceRollState', 'net/corda/core/identity/Party', 'net/corda/core/transactions/TransactionBuilder', 'net/corda/core/transactions/SignedTransaction', 'net/corda/core/transactions/FilteredTransaction', 'net/corda/core/crypto/TransactionSignature', 'net/corda/core/transactions/SignedTransaction', 'java/lang/Iterable', 'java/lang/Iterable', 'java/util/Collection', 'java/util/Iterator', 'java/lang/Object', 'net/corda/core/identity/Party', integer, top, top, 'com/oracleClient/flows/RollDiceFlow', top, top, 'net/corda/core/transactions/SignedTransaction', 'java/util/Collection', top, 'co/paralleluniverse/fibers/Stack', integer, null }
    stack: { }
  Bytecode:
    0x0000000: 013a 1ab8 0132 593a 18c6 003e 1918 0436
    0x0000010: 19b6 0136 aa00 0000 0000 0028 0000 0001
    0x0000020: 0000 0006 0000 0056 0000 00a7 0000 00f4
    0x0000030: 0000 022b 0000 03bc 0000 058e 1918 b601
    0x0000040: 399a 0006 013a 1803 3619 2a2a b400 1219
    0x0000050: 18c6 002b 1918 0405 b601 3d19 1804 b801
    0x0000060: 4119 1803 b801 4103 3619 1918 03b6 0145
    0x0000070: c000 0219 1804 b601 45c0 0053 b600 164c
    0x0000080: 2b05 bd00 1859 032a b400 1c53 5904 2ab4
    0x0000090: 0020 b600 2653 b800 2c19 18c6 003c 1918
    0x00000a0: 0506 b601 3d19 1804 b801 4119 1803 b801
    0x00000b0: 412b 1918 05b8 0141 0336 1919 1805 b601
    0x00000c0: 45c0 002e 4c19 1803 b601 45c0 002e 1918
    0x00000d0: 04b6 0145 c000 c7b6 0032 2b4e 2d12 3419
    0x00000e0: 18c6 004d 1918 0607 b601 3d19 1804 b801
    0x00000f0: 4119 1803 b801 412b 1918 05b8 0141 2d19
    0x0000100: 1806 b801 4103 3619 1918 05b6 0145 c000
    0x0000110: 2e4c 1918 06b6 0145 c000 2e4e 1918 03b6
    0x0000120: 0145 c000 2e19 1804 b601 45c0 0147 b600
    0x0000130: 384e 002d b600 3dc0 0034 3a04 0336 0519
    0x0000140: 0400 4d2a b600 41b9 0047 0100 b900 4d01
    0x0000150: 00b8 0051 c000 534e bb00 5559 2db7 0059
    0x0000160: 3a04 1904 2c03 0301 0105 bd00 5359 032a
    0x0000170: b600 5d53 5904 2ab4 0012 53b8 002c 100f
    0x0000180: 01b8 0061 c000 6312 6501 0701 b800 6957
    0x0000190: 1904 bb00 6b59 b700 6ec0 0070 05bd 0072
    0x00001a0: 5903 2ab6 005d b600 7653 5904 2ab4 0012
    0x00001b0: b600 7653 b800 2cb6 007a 5719 042a b600
    0x00001c0: 41b6 007e 2ab6 0041 1904 b900 8202 003a
    0x00001d0: 0519 05bb 0084 592a b700 87c0 0089 b600
    0x00001e0: 8f3a 062a bb00 9159 2ab4 0012 1906 b700
    0x00001f0: 94c0 0005 1918 c600 9c19 1807 1008 b601
    0x0000200: 3d19 1804 b801 4119 1803 b801 412b 1918
    0x0000210: 05b8 0141 2c19 1806 b801 412d 1918 07b8
    0x0000220: 0141 1904 1918 08b8 0141 1905 1918 1006
    0x0000230: b801 4119 0619 1810 07b8 0141 0336 1919
    0x0000240: 1805 b601 45c0 002e 4c19 1806 b601 45c0
    0x0000250: 0034 4d19 1807 b601 45c0 0053 4e19 1808
    0x0000260: b601 45c0 0055 3a04 1918 1006 b601 45c0
    0x0000270: 008b 3a05 1918 1007 b601 45c0 00ed 3a06
    0x0000280: 1918 03b6 0145 c000 0219 1804 b601 45c0
    0x0000290: 0005 b600 98c0 009a 3a07 1905 1907 b600
    0x00002a0: 9e3a 082a bb00 a059 1908 2ab4 0020 b600
    0x00002b0: a3c0 00a5 b800 a9c0 00a5 3a09 3a15 3a14
    0x00002c0: 3a13 3a12 1909 3a0a bb00 ab59 1909 100a
    0x00002d0: b800 afb7 00b2 c000 b43a 0b19 0ab9 00b8
    0x00002e0: 0100 3a0c 190c b900 be01 0099 01eb 190c
    0x00002f0: b900 c101 003a 0d19 0b19 0dc0 0053 3a0e
    0x0000300: 3a16 0336 0f2a 190e 1918 c601 ba19 1808
    0x0000310: 1015 b601 3d19 1804 b801 4119 1803 b801
    0x0000320: 412b 1918 05b8 0141 2c19 1806 b801 412d
    0x0000330: 1918 07b8 0141 1904 1918 08b8 0141 1905
    0x0000340: 1918 1006 b801 4119 0619 1810 07b8 0141
    0x0000350: 1907 1918 1008 b801 4119 0819 1810 09b8
    0x0000360: 0141 1909 1918 100a b801 4119 0a19 1810
    0x0000370: 0bb8 0141 190b 1918 100c b801 4119 0c19
    0x0000380: 1810 0db8 0141 190d 1918 100e b801 4119
    0x0000390: 0e19 1810 0fb8 0141 150f 1918 03b8 014a
    0x00003a0: 1912 1918 1010 b801 4119 1319 1810 11b8
    0x00003b0: 0141 1914 1918 1012 b801 4119 1519 1810
    0x00003c0: 13b8 0141 1916 1918 1014 b801 4103 3619
    0x00003d0: 1918 05b6 0145 c000 2e4c 1918 06b6 0145
    0x00003e0: c000 344d 1918 07b6 0145 c000 534e 1918
    0x00003f0: 08b6 0145 c000 553a 0419 1810 06b6 0145
    0x0000400: c000 8b3a 0519 1810 07b6 0145 c000 ed3a
    0x0000410: 0619 1810 08b6 0145 c000 9a3a 0719 1810
    0x0000420: 09b6 0145 c000 8b3a 0819 1810 0ab6 0145
    0x0000430: c000 a53a 0919 1810 0bb6 0145 c000 a53a
    0x0000440: 0a19 1810 0cb6 0145 c000 b43a 0b19 1810
    0x0000450: 0db6 0145 c000 ba3a 0c19 1810 0eb6 0145
    0x0000460: 3a0d 1918 100f b601 45c0 0053 3a0e 1918
    0x0000470: 03b6 014e 360f 1918 1010 b601 45c0 0002
    0x0000480: 3a12 1918 1011 b601 45c0 00a0 3a13 1918
    0x0000490: 1012 b601 45c0 00a0 3a14 1918 1013 b601
    0x00004a0: 45c0 008b 3a15 1918 1014 b601 45c0 00b4
    0x00004b0: 3a16 1918 03b6 0145 c000 0219 1804 b601
    0x00004c0: 45c0 0053 b600 163a 1719 1619 17b9 00c5
    0x00004d0: 0200 57a7 fe11 190b c000 c73a 1619 1219
    0x00004e0: 1319 1419 1519 16c0 00b4 0107 01b7 00ca
    0x00004f0: c000 0519 18c6 0184 1918 1006 1013 b601
    0x0000500: 3d19 1804 b801 4119 1803 b801 412b 1918
    0x0000510: 05b8 0141 2c19 1806 b801 412d 1918 07b8
    0x0000520: 0141 1904 1918 08b8 0141 1905 1918 1006
    0x0000530: b801 4119 0619 1810 07b8 0141 1907 1918
    0x0000540: 1008 b801 4119 0819 1810 09b8 0141 1909
    0x0000550: 1918 100a b801 4119 0a19 1810 0bb8 0141
    0x0000560: 190b 1918 100c b801 4119 0c19 1810 0db8
    0x0000570: 0141 1912 1918 100e b801 4119 1319 1810
    0x0000580: 0fb8 0141 1914 1918 1010 b801 4119 1519
    0x0000590: 1810 11b8 0141 1916 1918 1012 b801 4103
    0x00005a0: 3619 1918 05b6 0145 c000 2e4c 1918 06b6
    0x00005b0: 0145 c000 344d 1918 07b6 0145 c000 534e
    0x00005c0: 1918 08b6 0145 c000 553a 0419 1810 06b6
    0x00005d0: 0145 c000 8b3a 0519 1810 07b6 0145 c000
    0x00005e0: ed3a 0619 1810 08b6 0145 c000 9a3a 0719
    0x00005f0: 1810 09b6 0145 c000 8b3a 0819 1810 0ab6
    0x0000600: 0145 c000 a53a 0919 1810 0bb6 0145 c000
    0x0000610: a53a 0a19 1810 0cb6 0145 c000 b43a 0b19
    0x0000620: 1810 0db6 0145 c000 ba3a 0c19 1810 0eb6
    0x0000630: 0145 c000 023a 1219 1810 0fb6 0145 c000
    0x0000640: a03a 1319 1810 10b6 0145 c000 a03a 1419
    0x0000650: 1810 11b6 0145 c000 8b3a 1519 1810 12b6
    0x0000660: 0145 c000 c73a 1619 1803 b601 45c0 0002
    0x0000670: 1918 04b6 0145 c000 05b6 0098 c000 8b19
    0x0000680: 18c6 000a 1918 1015 b601 51b0 59b6 0157
    0x0000690: c101 2899 0009 b601 57a7 000f 1918 c600
    0x00006a0: 0a19 1810 15b6 0151 bf                 
  Exception Handler Table:
    bci [71, 1676] => handler: 1704
    bci [71, 1676] => handler: 1704
    bci [71, 1676] => handler: 1676
    bci [71, 1676] => handler: 1692
  Stackmap Table:
    full_frame(@60,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@71,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Top,Null},{})
    full_frame(@106,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@124,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{Object[#2],Object[#83]})
    same_frame(@187)
    full_frame(@215,{Object[#2],Object[#46],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{Object[#46],Object[#199]})
    full_frame(@264,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@302,{Object[#2],Object[#46],Top,Object[#46],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{Object[#46],Object[#327]})
    full_frame(@575,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@658,{Object[#2],Object[#46],Object[#52],Object[#83],Object[#85],Object[#139],Object[#237],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{Object[#2],Object[#5]})
    full_frame(@740,{Object[#2],Object[#46],Object[#52],Object[#83],Object[#85],Object[#139],Object[#237],Object[#154],Object[#139],Object[#165],Object[#165],Object[#180],Object[#186],Top,Top,Top,Top,Top,Object[#2],Top,Top,Object[#139],Top,Top,Object[#302],Integer,Null},{})
    full_frame(@976,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@1220,{Object[#2],Object[#46],Object[#52],Object[#83],Object[#85],Object[#139],Object[#237],Object[#154],Object[#139],Object[#165],Object[#165],Object[#180],Object[#186],Object[#345],Object[#83],Integer,Top,Top,Object[#2],Top,Top,Object[#139],Object[#180],Top,Object[#302],Integer,Null},{Object[#2],Object[#83]})
    full_frame(@1238,{Object[#2],Object[#46],Object[#52],Object[#83],Object[#85],Object[#139],Object[#237],Object[#154],Object[#139],Object[#165],Object[#165],Object[#180],Object[#186],Top,Top,Top,Top,Top,Object[#2],Top,Top,Object[#139],Top,Top,Object[#302],Integer,Null},{})
    full_frame(@1442,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Integer,Null},{})
    full_frame(@1657,{Object[#2],Object[#46],Object[#52],Object[#83],Object[#85],Object[#139],Object[#237],Object[#154],Object[#139],Object[#165],Object[#165],Object[#180],Object[#186],Top,Top,Top,Top,Top,Object[#2],Top,Top,Object[#139],Object[#199],Top,Object[#302],Integer,Null},{Object[#2],Object[#5]})
    same_locals_1_stack_item_frame(@1675,Object[#139])
    full_frame(@1676,{Object[#2],Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Top,Object[#302],Top,Null},{Object[#300]})
    same_locals_1_stack_item_frame(@1692,Object[#339])
    same_locals_1_stack_item_frame(@1704,Object[#339])


	at com.flowTests.OracleClientIntegrationTest.oracleReturnsARandomDiceRoll(OracleClientIntegrationTest.kt:103)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

最佳答案

你能尝试一下

compileKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xnormalize-constructor-calls=enable"]
    }
}

在您的工作流程 JAR 中看看是否有帮助?

关于java - 为什么我的子流程会抛出错误? (Java.lang.VerifyError : Bad local variable type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54875562/

相关文章:

android - 是否有可能将 try catch 函数作为中缀函数?

java - 支持空间查询的内存数据库

java - 停止无限循环paint()方法?用paint()添加JButton?

unit-testing - 如何在 Intellij 中导入目录/完整包以进行测试

kotlin - groupBy Kotlin 中的多个字段和求和值

java - 如何解决 bootcamp-cordapp 中的 NotSerializedException。测试合约时

corda - 何时将 @Suspendable 添加到流程中的方法?

corda - 除了强制信息之外,有没有办法向节点添加更多信息?

java - 如何在目录中列出服务器上的文件名?

java - 如何使用 switch 语句并获得正确的输出?