Использую такую логику: return new AmigoSet<E>(map.keySet()); Валидатор не принимает. Для удовлетворения требований по исколючениям обернул это в try, но не помогает. Сравнил результаты своего метода и предлагаемого в качестве правильного решения (cloneOrig в коде ниже), результат вроде одинаковый - клонированый set хранит новую мапу в которой ссылки на исходные элементы (user в моем примере) Чем плох мой вариант клонирования?