From: Hyzer, Chris
Sent: Wednesday, April 03, 2019 2:51 PM
To: Redman, Chad <email@example.com>; firstname.lastname@example.org
Subject: RE: visualization circular references
You keep a set of uuids that have been processed. If it is in that set, then you don’t process that one again. Pass the set to itself (method) recursively, or have somewhere (member var) whatever… ok?
I can also get the error to come up – a simple group loader loads itself so it keeps chaining to itself. When you showed the sample diagram, it showed a loader with an arrow to itself, so sometimes it works ok.
I'll think of some algorithm to detect cycles. I can also skip the recursive call if it's a link to itself, but that won't fix your example.
From: email@example.com [firstname.lastname@example.org] On Behalf Of Hyzer, Chris
Sent: Wednesday, April 03, 2019 1:50 PM
Subject: [grouper-core] visualization circular references
I think circular references are handled well in the API and UI, but *not* visualization (I was mistaken earlier)… Chad, can you add in checks to see which objects have been graphed and break the cycle? Here is an example:
Test1 is a member of testGroup and visa versa. So self is an indirect member of self. That’s fine. But a member of self is not an indirect member of self (see ed stemmeler). I think this is fine since if you remove the direct membership, the indirect also is removed. Anyways, I don’t think we need to make any changes to group sets in this area… but scroll down for visualization