private static void inheritSuperOwners(Class<?> cls, Map<Class<?>, Set<Class<?>>> clsToOwnersMap) {
        Set<Class<?>> ownerSet = new HashSet<>();
        
        Class<?> curCls = cls;
        while (curCls != null) {
            Set<Class<?>> curOwnerSet = clsToOwnersMap.get(curCls);
            if (curOwnerSet != null) {
                ownerSet.addAll(curOwnerSet);
            }
            curCls = curCls.getSuperclass();
        }
        
        if (!ownerSet.isEmpty()) {
            clsToOwnersMap.put(cls, ownerSet);
        }
    }