Uploaded image for project: 'Corda'
  1. CORDA-2694

Launching node explorer for node creates error and explorer closes

    Details

    • Type: Bug
    • Status: Done (View workflow)
    • Priority: Medium
    • Resolution: Done
    • Affects versions: Corda 4, Corda Enterprise 4 RC03
    • Fix versions: Corda 4.1
    • Components: None
    • Labels:
      None
    • Affected OS:
      Linux
    • Severity:
      Medium
    • Feature Team:
      Select team
    • Sprint:

      Description

      Launched node explorer and connected to a CE RC03 node (Unbuntu on Azure) with SQL database. A handful of issue obligation flows had been executed from the command line. The node explorer closes with the following errors

      net.corda.core.internal.TransactionDeserialisationException: Failed to deserialise group OUTPUTS_GROUP at index 0 in transaction: net.corda.core.contracts.TransactionState (erased) -> data(net.corda.core.contracts.ContractState) -> net.corda.examples.obligation.Obligation: Interface net.corda.core.contracts.LinearState requires a field named participants but that isn't found in the schema or any superclass schemas
      	at net.corda.core.internal.TransactionUtilsKt$deserialiseComponentGroup$1.invoke(TransactionUtils.kt:82)
      	at net.corda.core.internal.TransactionUtilsKt$deserialiseComponentGroup$1.invoke(TransactionUtils.kt)
      	at net.corda.core.internal.LazyMappedList.get(InternalUtils.kt:533)
      	at java.util.AbstractList$Itr.next(AbstractList.java:358)
      	at net.corda.core.transactions.BaseTransaction.outRefsOfType(BaseTransaction.kt:213)
      	at net.corda.client.jfx.model.PartiallyResolvedTransaction$Companion.fromSignedTransaction(TransactionDataModel.kt:100)
      	at net.corda.client.jfx.model.TransactionDataModel$partiallyResolvedTransactions$1.invoke(TransactionDataModel.kt:89)
      	at net.corda.client.jfx.model.TransactionDataModel$partiallyResolvedTransactions$1.invoke(TransactionDataModel.kt:82)
      	at net.corda.client.jfx.utils.MappedList.sourceChanged(MappedList.kt:56)
      	at javafx.collections.transformation.TransformationList.lambda$getListener$23(TransformationList.java:106)
      	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
      	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
      	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
      	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
      	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
      	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
      	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
      	at net.corda.client.jfx.utils.AggregatedList.sourceChanged(AggregatedList.kt:96)
      	at javafx.collections.transformation.TransformationList.lambda$getListener$23(TransformationList.java:106)
      	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
      	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
      	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
      	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
      	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
      	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
      	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
      	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
      	at java.util.AbstractList.add(AbstractList.java:108)
      	at net.corda.client.jfx.utils.ObservableFold$recordInSequence$1.invoke(ObservableFold.kt:70)
      	at net.corda.client.jfx.utils.ObservableFold$recordInSequence$1.invoke(ObservableFold.kt)
      	at net.corda.client.jfx.utils.ObservableFold$fold$1$1.run(ObservableFold.kt:56)
      	at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
      	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
      	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
      	at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.io.NotSerializableException: net.corda.core.contracts.TransactionState (erased) -> data(net.corda.core.contracts.ContractState) -> net.corda.examples.obligation.Obligation: Interface net.corda.core.contracts.LinearState requires a field named participants but that isn't found in the schema or any superclass schemas
      	at net.corda.serialization.internal.model.SchemaBuildingRemoteTypeCarpenter.carpent(RemoteTypeCarpenter.kt:35)
      	at net.corda.serialization.internal.model.ClassCarpentingTypeLoader$load$carpented$1$1.apply(TypeLoader.kt:53)
      	at net.corda.serialization.internal.model.ClassCarpentingTypeLoader$load$carpented$1$1.apply(TypeLoader.kt:24)
      	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
      	at net.corda.serialization.internal.model.ClassCarpentingTypeLoader$load$carpented$1.invoke(TypeLoader.kt:52)
      	at net.corda.serialization.internal.model.ClassCarpentingTypeLoader$load$carpented$1.invoke(TypeLoader.kt:24)
      	at net.corda.serialization.internal.model.CarpentryDependencyGraph.buildInOrder(CarpentryDependencyGraph.kt:65)
      	at net.corda.serialization.internal.model.CarpentryDependencyGraph.access$buildInOrder(CarpentryDependencyGraph.kt:14)
      	at net.corda.serialization.internal.model.CarpentryDependencyGraph$Companion.buildInReverseDependencyOrder(CarpentryDependencyGraph.kt:24)
      	at net.corda.serialization.internal.model.ClassCarpentingTypeLoader.load(TypeLoader.kt:51)
      	at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.reflect(RemoteSerializerFactory.kt:122)
      	at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.access$reflect(RemoteSerializerFactory.kt:47)
      	at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1.invoke(RemoteSerializerFactory.kt:67)
      	at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory$get$1.invoke(RemoteSerializerFactory.kt:47)
      	at net.corda.serialization.internal.amqp.DefaultDescriptorBasedSerializerRegistry.getOrBuild(DescriptorBasedSerializerRegistry.kt:28)
      	at net.corda.serialization.internal.amqp.DefaultRemoteSerializerFactory.get(RemoteSerializerFactory.kt:62)
      	at net.corda.serialization.internal.amqp.ComposedSerializerFactory.get(SerializerFactory.kt)
      	at net.corda.serialization.internal.amqp.DeserializationInput.readObject$serialization(DeserializationInput.kt:172)
      	at net.corda.serialization.internal.amqp.DeserializationInput.readObjectOrNull$serialization(DeserializationInput.kt:147)
      	at net.corda.serialization.internal.amqp.DescribedTypeReadStrategy.readProperty(ComposableTypePropertySerializer.kt:202)
      	at net.corda.serialization.internal.amqp.ComposableTypePropertySerializer.readProperty(ComposableTypePropertySerializer.kt)
      	at net.corda.serialization.internal.amqp.ComposableObjectReader$readObject$$inlined$ifThrowsAppend$lambda$1.invoke(ObjectSerializer.kt:140)
      	at net.corda.serialization.internal.amqp.ComposableObjectReader$readObject$$inlined$ifThrowsAppend$lambda$1.invoke(ObjectSerializer.kt:122)
      	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:149)
      	at net.corda.serialization.internal.amqp.ComposableObjectReader.readObject(ObjectSerializer.kt:219)
      	at net.corda.serialization.internal.amqp.ComposableObjectSerializer.readObject(ObjectSerializer.kt:91)
      	at net.corda.serialization.internal.amqp.DeserializationInput.readObject$serialization(DeserializationInput.kt:182)
      	at net.corda.serialization.internal.amqp.DeserializationInput.readObjectOrNull$serialization(DeserializationInput.kt:147)
      	at net.corda.serialization.internal.amqp.DeserializationInput$deserialize$1.invoke(DeserializationInput.kt:124)
      	at net.corda.serialization.internal.amqp.DeserializationInput.des(DeserializationInput.kt:99)
      	at net.corda.serialization.internal.amqp.DeserializationInput.deserialize(DeserializationInput.kt:119)
      	at net.corda.serialization.internal.amqp.AbstractAMQPSerializationScheme.deserialize(AMQPSerializationScheme.kt:225)
      	at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1$1.invoke(SerializationScheme.kt:102)
      	at net.corda.core.serialization.SerializationFactory.withCurrentContext(SerializationAPI.kt:72)
      	at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:102)
      	at net.corda.serialization.internal.SerializationFactoryImpl$deserialize$1.invoke(SerializationScheme.kt:70)
      	at net.corda.core.serialization.SerializationFactory.asCurrent(SerializationAPI.kt:86)
      	at net.corda.serialization.internal.SerializationFactoryImpl.deserialize(SerializationScheme.kt:102)
      	at net.corda.core.internal.TransactionUtilsKt$deserialiseComponentGroup$1.invoke(TransactionUtils.kt:78)
      

        Attachments

          Activity

            People

            • Assignee:
              chris.rankin Chris Rankin
              Reporter:
              Gavin.Thomas Gavin Thomas
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: