Listen for transactions failing in cordite console
Steps to create
- Run in local docker
buildAndRunLocal.sh
ledger.createAccount('sue',notary)
ledger.listenForTransactions(["sue"])
You then get:
Hit escape to stop waiting on promise
No errors in log at this point
Then when you send a token to that account from another node you get in the cordite console
Promise rejected: Thrown: -32000: Collection has more than one element.
In the docker log you get
11:17:00.902 [Node thread-1] ERROR io.cordite.dgl.corda.impl.LedgerApiImpl - listen for account failed
java.lang.IllegalArgumentException: Collection has more than one element.
at kotlin.collections.CollectionsKt___CollectionsKt.single(_Collections.kt:461) ~[kotlin-stdlib-1.1.60.jar:1.1.60-release-55 (1.1.60)]
at io.cordite.dgl.corda.impl.LedgerApiImpl$listenForTransactionsWithPaging$1$1.call(LedgerAPIImpl.kt:296) ~[dgl-cordapp-0.3.3-SNAPSHOT.jar:?]
at io.cordite.dgl.corda.impl.LedgerApiImpl$listenForTransactionsWithPaging$1$1.call(LedgerAPIImpl.kt:53) ~[dgl-cordapp-0.3.3-SNAPSHOT.jar:?]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFilter$FilterSubscriber.onNext(OnSubscribeFilter.java:76) [rxjava-1.2.4.jar:1.2.4]
at rx.observers.Subscribers$5.onNext(Subscribers.java:235) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.replay(UnicastSubject.java:295) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.onNext(UnicastSubject.java:176) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject.onNext(UnicastSubject.java:92) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.util.ObserverSubscriber.onNext(ObserverSubscriber.java:34) [rxjava-1.2.4.jar:1.2.4]
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject.onNext(PublishSubject.java:72) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.util.ObserverSubscriber.onNext(ObserverSubscriber.java:34) [rxjava-1.2.4.jar:1.2.4]
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) [rxjava-1.2.4.jar:1.2.4]
at rx.observers.Subscribers$5.onNext(Subscribers.java:235) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.replay(UnicastSubject.java:295) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.request(UnicastSubject.java:237) [rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:209) [rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:205) [rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:205) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.call(UnicastSubject.java:252) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.UnicastSubject$State.call(UnicastSubject.java:115) [rxjava-1.2.4.jar:1.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10142) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeDelaySubscriptionOther$1.onCompleted(OnSubscribeDelaySubscriptionOther.java:74) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeDelaySubscriptionOther$1.onNext(OnSubscribeDelaySubscriptionOther.java:53) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.producers.SingleProducer.request(SingleProducer.java:65) [rxjava-1.2.4.jar:1.2.4]
at rx.Subscriber.setProducer(Subscriber.java:209) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:110) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OperatorTake$1.onNext(OperatorTake.java:80) [rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeFilter$FilterSubscriber.onNext(OnSubscribeFilter.java:76) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.PublishSubject.onNext(PublishSubject.java:72) [rxjava-1.2.4.jar:1.2.4]
at rx.observers.SerializedObserver.onNext(SerializedObserver.java:91) [rxjava-1.2.4.jar:1.2.4]
at rx.subjects.SerializedSubject.onNext(SerializedSubject.java:67) [rxjava-1.2.4.jar:1.2.4]
at net.corda.nodeapi.internal.persistence.DatabaseTransaction.close(DatabaseTransaction.kt:61) [corda-node-api-3.2-corda.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.commitTransaction$node(FlowStateMachineImpl.kt:146) [corda-node-3.2-corda.jar:?]
at net.corda.node.services.statemachine.StateMachineManagerImpl$initFiber$3.invoke(StateMachineManagerImpl.kt:456) [corda-node-3.2-corda.jar:?]
at net.corda.node.services.statemachine.StateMachineManagerImpl$initFiber$3.invoke(StateMachineManagerImpl.kt:63) [corda-node-3.2-corda.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:118) [corda-node-3.2-corda.jar:?]
at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44) [corda-node-3.2-corda.jar:?]
at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) [quasar-core-0.7.9-jdk8.jar:0.7.9]
at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) [quasar-core-0.7.9-jdk8.jar:0.7.9]
at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-0.7.9-jdk8.jar:0.7.9]
at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-0.7.9-jdk8.jar:0.7.9]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:62) [corda-node-3.2-corda.jar:?]
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: net.corda.core.node.services.Vault$Update.class
at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118) ~[rxjava-1.2.4.jar:1.2.4]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73) [rxjava-1.2.4.jar:1.2.4]
... 50 more
11:17:00.940 [Thread-12 (ActiveMQ-client-global-threads)] INFO net.corda.node.services.messaging.P2PMessagingClient - Received message from: p2p.inbound.DL251vGzBGNALmkx2fafc4ui765Jgqu8CFg6qBMjfgda2v user: OU=Cordite Foundation, O=Cordite AMER, L=New York City, C=US topic: platform.session uuid: 8e15e4c2-f186-4ae1-8201-2088465e38e0
We need to add a local and integration test for this as well
Edited by Mark Simpson