Недавно обновленный log4j от 2.1 до 2.2, и один из наших тестов завершился неудачей, который сравнивает два фильтра. Похоже, что причина в том, что старый проверяет (в конце концов), если пара фильтров ivars совпадает с AbstractFilter (после прохождения метода AbstractLifeCycle равна), но в новой версии AbstractLifeCycle не имеет equals(), поэтому он идет к Object.equals(), который, конечно, не подходит для разных экземпляров.
Я пропустил что-то или это ошибка?
Мы сознательно удалили реализацию equals из AbstractLifeCycle, поскольку суперкласс не может знать, что означает равенство для всех подклассов. Подробнее см. Https://issues.apache.org/jira/browse/LOG4J2-891.
Подклассы должны реализовывать сами equals() и hashCode(). Извиняюсь за неудобства.