Summary
OSATE can enter an infinite loop when looking up properties on component types that have a cycle in the hierarchy. This is because ComponentTypeImpl.getPropertyVlaueInternal only detects loops if the "this" component type is part of the cycle as opposed to a cycle in other parts of the hierarchy.
Expected and Current Behavior
Should break out of cycle in property resolution.
Steps to Reproduce
- Open model
- Open AADL Properties View
- Right click on "A" in the outline.
It can also be triggered by using the graphical editor or anything else that may cause a property lookup.
package cycle_example
public
system A extends B
end A;
system B extends C
end B;
system C extends B
end C;
end cycle_example;