LionWeb-io / property-demo

0 stars 1 forks source link

link resolution fails #4

Closed enikao closed 1 year ago

enikao commented 1 year ago

I threw together starlasu.lmm.json and properties.lmm.json and tried to load it:

java.lang.IllegalStateException: Unable to solve reference MetaPointer{key='Link_type', version='1', metamodel='LIonCore_M3'}. Concept org.lionweb.lioncore.java.metamodel.Concept(LIonCore.M3.Property). SerializedNode SerializedNode{id='value', concept=MetaPointer{key='Containment', version='1', metamodel='LIonCore_M3'}, parentNodeID='io_lionweb_Properties-Property', properties=[SerializedPropertyValue{metaPointer=MetaPointer{key='multiple', version='1', metamodel='LIonCore_M3'}, value='false'}, SerializedPropertyValue{metaPointer=MetaPointer{key='optional', version='1', metamodel='LIonCore_M3'}, value='false'}, SerializedPropertyValue{metaPointer=MetaPointer{key='derived', version='1', metamodel='LIonCore_M3'}, value='false'}, SerializedPropertyValue{metaPointer=MetaPointer{key='NamespacedEntity_name', version='1', metamodel='LIonCore_M3'}, value='value'}, SerializedPropertyValue{metaPointer=MetaPointer{key='qualifiedName', version='1', metamodel='LIonCore_M3'}, value='io.lionweb.Properties.Property.value'}, SerializedPropertyValue{metaPointer=MetaPointer{key='key', version='1', metamodel='LIonCore_M3'}, value='io_lionweb_Properties-Property-value'}], containments=[], references=[SerializedReferenceValue{metaPointer=MetaPointer{key='Link_type', version='1', metamodel='LIonCore_M3'}, value=[Entry{resolveInfo='Value', reference='io_lionweb_Properties-Value'}]}]}
    at org.lionweb.lioncore.java.serialization.JsonSerialization.lambda$populateNodeReferences$12(JsonSerialization.java:360)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.lionweb.lioncore.java.serialization.JsonSerialization.populateNodeReferences(JsonSerialization.java:353)
    at org.lionweb.lioncore.java.serialization.JsonSerialization.populateNode(JsonSerialization.java:319)
    at org.lionweb.lioncore.java.serialization.JsonSerialization.lambda$unserializeSerializationBlock$7(JsonSerialization.java:287)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
    at org.lionweb.lioncore.java.serialization.JsonSerialization.unserializeSerializationBlock(JsonSerialization.java:287)
    at org.lionweb.lioncore.java.serialization.JsonSerialization.unserializeToNode(JsonSerialization.java:256)
    at io.lionweb.mps.json.Unserializer.unserializeMetamodels(Unserializer.java:43)
    at io.lionweb.mps.converter.lang.intentions.RunImporterFromJson_Intention$IntentionImplementation.execute(RunImporterFromJson_Intention.java:81)
    at jetbrains.mps.nodeEditor.IntentionsSupport$6.doExecute(IntentionsSupport.java:284)
    at jetbrains.mps.editor.runtime.commands.EditorCommand.run(EditorCommand.java:55)
    at jetbrains.mps.smodel.WorkbenchModelAccess$UndoContextSetup.run(WorkbenchModelAccess.java:371)
    at jetbrains.mps.smodel.ActionDispatcher.dispatch(ActionDispatcher.java:88)
    at jetbrains.mps.smodel.ActionDispatcher.lambda$wrap$0(ActionDispatcher.java:110)
    at jetbrains.mps.smodel.ActionDispatcher.dispatch(ActionDispatcher.java:88)
    at jetbrains.mps.smodel.ActionDispatcher.lambda$wrap$0(ActionDispatcher.java:110)
    at jetbrains.mps.smodel.LockRunnable.run(LockRunnable.java:60)
    at jetbrains.mps.smodel.TryRunPlatformWriteHelper.lambda$tryWrite$2(TryRunPlatformWriteHelper.java:122)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:959)
    at jetbrains.mps.smodel.TryRunPlatformWriteHelper.runWrite(TryRunPlatformWriteHelper.java:103)
    at jetbrains.mps.smodel.TryRunPlatformWriteHelper.tryWrite(TryRunPlatformWriteHelper.java:120)
    at jetbrains.mps.smodel.WorkbenchModelAccess.lambda$tryWriteInCommand$4(WorkbenchModelAccess.java:226)
    at jetbrains.mps.util.ComputeRunnable.compute(ComputeRunnable.java:32)
    at jetbrains.mps.util.AbstractComputeRunnable.run(AbstractComputeRunnable.java:27)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:216)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
    at jetbrains.mps.smodel.WorkbenchModelAccess.tryWriteInCommand(WorkbenchModelAccess.java:243)
    at jetbrains.mps.smodel.WorkbenchModelAccess.lambda$runCommandInEDT_$3(WorkbenchModelAccess.java:159)
    at jetbrains.mps.smodel.EDTExecutor$1.tryRun(EDTExecutor.java:61)
    at jetbrains.mps.smodel.EDTExecutorInternal.tryToRunTopTask(EDTExecutorInternal.java:292)
    at jetbrains.mps.smodel.EDTExecutorInternal.flushNTasks(EDTExecutorInternal.java:247)
    at jetbrains.mps.smodel.EDTExecutorInternal.doFlush(EDTExecutorInternal.java:229)
    at jetbrains.mps.smodel.EDTExecutorInternal.flushTasksQueue(EDTExecutorInternal.java:209)
    at jetbrains.mps.smodel.EDTExecutorInternal.lambda$guaranteeWriteSafetyViaHack$3(EDTExecutorInternal.java:196)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:218)
    at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:200)
    at jetbrains.mps.smodel.EDTExecutorInternal.lambda$guaranteeWriteSafetyViaHack$4(EDTExecutorInternal.java:201)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
    at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
ftomassetti commented 1 year ago

This particular problem could be due to the duplicate IDs present in the file I sent you. I will send you updated files on Slack so you can proceed testing even before the rest is merged

ftomassetti commented 1 year ago

The correct versions of the metamodels should be generated once https://github.com/LIonWeb-org/lioncore-java/pull/61 is merged and the corresponding Kolasu version is released and used here

ftomassetti commented 1 year ago

I would expect this to work now, please let me know if this is not the case

enikao commented 1 year ago

yes, works now.