public Collection<Group> getInvisibleSharedGroups() {
        Collection<Group> groups = new ArrayList<>(invisibleSharedGroups.size());
        for (String groupName : invisibleSharedGroups) {
            try {
                groups.add(GroupManager.getInstance().getGroup(groupName));
            }
            catch (GroupNotFoundException e) {
                // Do nothing
            }
        }
        return groups;
    }
Returns the invisible shared groups for the item. These groups are for internal use
and help track the reason why a roster item has a presence subscription of type FROM
when using shared groups.

@return The shared groups this item belongs to.
xmppserver/src/main/java/org/jivesoftware/openfire/roster/RosterItem.java