Reusing same concern twice overwrites previous woven model

Issue #241 duplicate
Calem Bendell created an issue

Validation manager crashses TouchCORE App when attempting to open "Woven_RenderingWindow"

ca.mcgill.cs.sel.ram.impl.OperationImpl@4d50aaeb (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKoc3GOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@6b0551f4 (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKod3GOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@2a47a110 (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKoeHGOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@449f371f (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKoeXGOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@30dbf76b (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKofXGOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@3950aadc (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKofnGOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@7bf258a (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKohHGOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
ca.mcgill.cs.sel.ram.impl.OperationImpl@16398aff (eProxyURI: file:/U:/src/touchram/models/minueto/minuetopatterns/Woven_Minueto.ram#_pjKoh3GOEeSwZ-BUPBgO7g) : returnTypeDefined (if self.returnType.oclIsInvalid().or(self.returnType.oclIsUndefined()) then false else let sv : ram::StructuralView[?] = self.oclContainer().oclAsType(ram::Classifier).oclContainer().oclAsType(ram::StructuralView) in sv.types->includes(self.returnType).or(sv.oclContainer().oclAsType(ram::Aspect).containsTypeInEnumsOrClasses(self.returnType)) endif)
Attempt to navigate from null to ''http://cs.mcgill.ca/sel/core/1.0'::CORENamedElement::name'
Exception in thread "Animation Thread" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at ca.mcgill.sel.ram.validator.ValidationManager.update(ValidationManager.java:402)

Comments (6)

  1. Calem Bendell reporter

    Actions take to reach this point are saving and closing the Woven_RenderingWindow and then attempting to reopen it. There were no error messages in saving.

  2. Matthias Schoettle

    This is caused, because you reused Minueto twice. The current way of saving the woven reused model is using "Woven_<concernName>.ram", so the second time it will overwrite the first and hence, your model will have invalid references. This is something we need to address soon.

    For now, is it possible for you to select the Image feature in the first reuse as well? Why do you have two?

  3. Log in to comment