corda / token-sdk

Corda Tokens SDK
Other
79 stars 76 forks source link

DriverDSLImpl issue with 1.1-RC01/master and CE 4.2 #141

Closed manosbatsis closed 5 years ago

manosbatsis commented 5 years ago

I'm using Corda Enterprise 4.2. When i try to change tokens SDK version to 1.1-RC01 or master i get the folowing error. I don't know how the SDK could possibly effect DriverDSLImpl and/or starting the test notary, but everything works as soon as i revert to the much older 1.1-SNAPSHOT.

    [INFO] 17:23:10,554 [driver-pool-thread-1] internal.Node.makeStateMachineExecutorService - Multi-threaded state machine manager with 1 threads.
    [INFO] 17:23:10,588 [driver-pool-thread-1] statemachine.StaffedFlowHospital.<init> - Initializing Flow Hospital. Session initialization error treatment disabled.
    [INFO] 17:23:10,611 [driver-pool-thread-1] internal.Node.start - Node starting up ...
    [INFO] 17:23:10,649 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialIssueTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialIssueTokensHandler (version 1)
    [INFO] 17:23:10,650 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialMoveFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialMoveFungibleTokensHandler (version 1)
    [INFO] 17:23:10,650 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialMoveNonFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialMoveNonFungibleTokensHandler (version 1)
    [INFO] 17:23:10,650 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialRedeemFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.ConfidentialRedeemFungibleTokensHandler (version 1)
    [INFO] 17:23:10,650 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.CreateEvolvableTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.CreateEvolvableTokensHandler (version 1)
    [INFO] 17:23:10,651 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.IssueTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.IssueTokensHandler (version 1)
    [INFO] 17:23:10,651 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.MoveFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.MoveFungibleTokensHandler (version 1)
    [INFO] 17:23:10,651 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.MoveNonFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.MoveNonFungibleTokensHandler (version 1)
    [INFO] 17:23:10,651 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.RedeemFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.RedeemFungibleTokensHandler (version 1)
    [INFO] 17:23:10,651 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.RedeemNonFungibleTokens to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.RedeemNonFungibleTokensHandler (version 1)
    [INFO] 17:23:10,652 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.flows.rpc.UpdateEvolvableToken to initiate com.r3.corda.lib.tokens.workflows.flows.rpc.UpdateEvolvableTokenHandler (version 1)
    [INFO] 17:23:10,652 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.internal.flows.distribution.RequestAdditionToDistributionList$Initiator to initiate com.r3.corda.lib.tokens.workflows.internal.flows.distribution.RequestAdditionToDistributionList$Responder (version 1)
    [INFO] 17:23:10,653 [driver-pool-thread-1] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.internal.flows.distribution.UpdateDistributionListFlow to initiate com.r3.corda.lib.tokens.workflows.internal.flows.distribution.UpdateDistributionListFlowHandler (version 1)
    [ERROR] 17:25:09,655 [DefaultDispatcher-worker-1 @coroutine#1] internal.DriverDSLImpl.genericDriver - Driver shutting down because of exception [errorCode=1crywct, moreInformationAt=https://errors.corda.net/ENT/4.2/1crywct]
     java.lang.IllegalStateException: Unable to start notaries. A required port might be bound already.
        at net.corda.testing.node.internal.DriverDSLImpl.start(DriverDSLImpl.kt:388) ~[corda-node-driver-4.2.jar:?]
        at net.corda.testing.node.internal.DriverDSLImplKt.genericDriver(DriverDSLImpl.kt:1005) ~[corda-node-driver-4.2.jar:?]
        at net.corda.testing.driver.Driver.driver(Driver.kt:190) ~[corda-node-driver-4.2.jar:?]
        at com.github.manosbatsis.corbeans.test.integration.NodeDriverHelper.withDriverNodes(NodeDriverHelper.kt:200) ~[corbeans-spring-boot-starter-test-0.30.jar:?]
        at com.github.manosbatsis.corbeans.test.integration.NodeDriverHelper$startNetworkAsync$1.doResume(NodeDriverHelper.kt:163) ~[corbeans-spring-boot-starter-test-0.30.jar:?]
        at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42) ~[kotlin-stdlib-1.2.71.jar:1.2.71-release-64 (1.2.71)]
        at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:168) ~[kotlinx-coroutines-core-0.30.2.jar:?]
        at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:13) ~[kotlinx-coroutines-core-0.30.2.jar:?]
        at kotlinx.coroutines.experimental.scheduling.Task.run(Tasks.kt:94) ~[kotlinx-coroutines-core-0.30.2.jar:?]
        at kotlinx.coroutines.experimental.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) ~[kotlinx-coroutines-core-0.30.2.jar:?]
        at kotlinx.coroutines.experimental.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) ~[kotlinx-coroutines-core-0.30.2.jar:?]
        at kotlinx.coroutines.experimental.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:732) ~[kotlinx-coroutines-core-0.30.2.jar:?]
    Caused by: java.util.concurrent.TimeoutException
        at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1771) ~[?:1.8.0_212]
        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915) ~[?:1.8.0_212]
        at net.corda.core.internal.concurrent.CordaFutureImpl.get(CordaFutureImpl.kt) ~[corda-core-4.2.jar:?]
        at net.corda.core.internal.concurrent.CordaFutureImplKt.get(CordaFutureImpl.kt:172) ~[corda-core-4.2.jar:?]
        at net.corda.core.utilities.KotlinUtilsKt.getOrThrow(KotlinUtils.kt:137) ~[corda-core-4.2.jar:?]
        at net.corda.testing.node.internal.DriverDSLImpl.start(DriverDSLImpl.kt:384) ~[corda-node-driver-4.2.jar:?]
        ... 11 more
    [INFO] 17:25:09,733 [Log4j2-TF-1-AsyncLogger[AsyncContextNoThreadLocal@73d16e93]-1] manifests.Manifests.info - 156 attributes loaded from 358 stream(s) in 64ms, 156 saved, 4947 ignored: ["ActiveMQ-Version", "Agent-Class", "Ant-Version", "Application-Class", "Application-ID", "Application-Library-Allowable-Codebase", "Application-Name", "Application-Version", "Apr-Version", "Archiver-Version", "Automatic-Module-Name", "Bnd-LastModified", "Boot-Class-Path", "BoringSSL-Branch", "BoringSSL-Revision", "Branch", "Build-Date", "Build-Host", "Build-Id", "Build-Java-Version", "Build-Jdk", "Build-Jdk-Spec", "Build-Job", "Build-Number", "Build-Revision", "Build-Time", "Build-Timestamp", "Built-By", "Built-Date", "Built-OS", "Built-On", "Built-Status", "Built-With", "Bundle-ActivationPolicy", "Bundle-Activator", "Bundle-Category", "Bundle-ClassPath", "Bundle-Classpath", "Bundle-Copyright", "Bundle-Description", "Bundle-DocURL", "Bundle-License", "Bundle-ManifestVersion", "Bundle-Name", "Bundle-NativeCode", "Bundle-RequiredExecutionEnvironment", "Bundle-SymbolicName", "Bundle-Vendor", "Bundle-Version", "Caller-Allowable-Codebase", "Can-Redefine-Classes", "Can-Retransform-Classes", "Can-Set-Native-Method-Prefix", "Caplets", "Change", "Class-Path", "Codebase", "Corda-Platform-Version", "Corda-Release-Version", "Corda-Revision", "Corda-Vendor", "Cordapp-Contract-Licence", "Cordapp-Contract-Name", "Cordapp-Contract-Vendor", "Cordapp-Contract-Version", "Cordapp-Workflow-Licence", "Cordapp-Workflow-Name", "Cordapp-Workflow-Vendor", "Cordapp-Workflow-Version", "Created-By", "DSTAMP", "DynamicImport-Package", "Eclipse-BuddyPolicy", "Eclipse-LazyStart", "Embed-Dependency", "Export-Package", "Extension-Name", "Fragment-Host", "Gradle-Version", "Hibernate-JpaVersion", "Hibernate-VersionFamily", "Ignore-Package", "Implementation-Build", "Implementation-Build-Date", "Implementation-Title", "Implementation-URL", "Implementation-Url", "Implementation-Vendor", "Implementation-Vendor-Id", "Implementation-Version", "Import-Package", "Include-Resource", "JCabi-Build", "JCabi-Date", "JCabi-Version", "JVM-Args", "Java-Agents", "Java-Vendor", "Java-Version", "Kotlin-Runtime-Component", "Kotlin-Version", "Liquibase-Package", "Log4jReleaseKey", "Log4jReleaseManager", "Log4jReleaseVersion", "Main-Class", "Main-class", "Manifest-Version", "Min-Java-Version", "Min-Platform-Version", "Min-Update-Version", "Module-Email", "Module-Origin", "Module-Owner", "Module-Source", "Multi-Release", "Originally-Created-By", "Os-Arch", "Os-Name", "Os-Version", "Package", "Permissions", "Premain-Class", "Private-Package", "Probe-Provider-XML-File-Names", "Provide-Capability", "Require-Bundle", "Require-Capability", "SCM-Revision", "SCM-url", "Scm-Connection", "Scm-Revision", "Scm-Url", "Sealed", "Service-Component", "Specification-Title", "Specification-Vendor", "Specification-Version", "SwaggerUi-Version", "System-Properties", "TODAY", "TSTAMP", "Target-Platform-Version", "Time-Zone-Database-Version", "Tool", "Trusted-Library", "Version", "X-Compile-Source-JDK", "X-Compile-Target-JDK", "X-Git-Hash", "build-time", "implementation-version", "mode", "package", "service", "url"]
kasiastreich commented 5 years ago

Hi @manosbatsis thanks for that! I think it isn't tokens related issue. I just spoke to my colleagues and it seems it's a bug in Corda. Could you re-raise the issue in the Corda repo?

manosbatsis commented 5 years ago

@kasiastreich Actually I tried launching a few nodes, saw this in the log and figured out i need to add the token-selection dependency, maybe the docs should be updated (or i haven't read them for some time ;-)

[INFO ] 2019-10-14T14:33:35,168Z [main] internal.NodeFlowManager.registerInitiatedFlow - Registered com.r3.corda.lib.tokens.workflows.internal.flows.distribution.UpdateDistributionListFlow to initiate com.r3.corda.lib.tokens.workflows.internal.flows.distribution.UpdateDistributionListFlowHandler (version 1) {}
[ERROR] 2019-10-14T14:33:35,172Z [main] internal.DbExceptionHandler.uncaughtException - Exception in thread "main" [errorCode=1gnp94c, moreInformationAt=https://errors.corda.net/ENT/4.2/1gnp94c] {}
java.lang.NoClassDefFoundError: com/r3/corda/lib/tokens/selection/api/Selector
    at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_212]
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_212]
    at java.lang.Class.getDeclaredConstructors(Class.java:2020) ~[?:1.8.0_212]
    at net.corda.node.internal.NodeFlowManager.registerInitiatedFlow(FlowManager.kt:77) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.AbstractNode$registerCordappFlows$$inlined$forEach$lambda$1.accept(AbstractNode.kt:741) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.AbstractNode$registerCordappFlows$$inlined$forEach$lambda$1.accept(AbstractNode.kt:131) ~[corda-node-4.2.jar:?]
    at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[?:1.8.0_212]
    at net.corda.node.internal.AbstractNode.registerCordappFlows(AbstractNode.kt:738) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:345) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.Node.start(Node.kt:506) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.EnterpriseNode.start(EnterpriseNode.kt:207) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:190) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartupCli$runProgram$2.run(NodeStartup.kt:113) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:167) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:120) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartupLogging$DefaultImpls.attempt(NodeStartup.kt:498) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartup.attempt(NodeStartup.kt:120) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:166) ~[corda-node-4.2.jar:?]
    at net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:111) ~[corda-node-4.2.jar:?]
    at net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:190) ~[corda-tools-cliutils-4.2.jar:?]
    at net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:156) ~[corda-tools-cliutils-4.2.jar:?]
    at picocli.CommandLine.execute(CommandLine.java:1056) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine.access$900(CommandLine.java:142) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$RunLast.handle(CommandLine.java:1246) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$RunLast.handle(CommandLine.java:1214) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1122) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine.parseWithHandlers(CommandLine.java:1405) ~[picocli-3.8.0.jar:3.8.0]
    at net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:73) ~[corda-tools-cliutils-4.2.jar:?]
    at net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.2.jar:?]
Caused by: java.lang.ClassNotFoundException: com.r3.corda.lib.tokens.selection.api.Selector
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_212]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_212]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_212]
    ... 29 more
kasiastreich commented 5 years ago

Ok. That's better then :) I will update docs. Thanks!

amoothart commented 4 years ago

I've also run into this and adding token-selection to my cordapp did not resolve the issue. The integration tests in the token-sdk on master are also failing for the same reason. Any insight into how to get past this?

kasiastreich commented 4 years ago

This is already solved on token-sdk master. You need to add TestCordapp.findCordapp("com.r3.corda.lib.tokens.selection") to your tests or tokens-selection to your cordapp