log4j AbstractFilter.equals (), кажется, делает идентичность объекта равной

1

Недавно обновленный log4j от 2.1 до 2.2, и один из наших тестов завершился неудачей, который сравнивает два фильтра. Похоже, что причина в том, что старый проверяет (в конце концов), если пара фильтров ivars совпадает с AbstractFilter (после прохождения метода AbstractLifeCycle равна), но в новой версии AbstractLifeCycle не имеет equals(), поэтому он идет к Object.equals(), который, конечно, не подходит для разных экземпляров.

Я пропустил что-то или это ошибка?

Теги:
log4j2

1 ответ

0
Лучший ответ

Мы сознательно удалили реализацию equals из AbstractLifeCycle, поскольку суперкласс не может знать, что означает равенство для всех подклассов. Подробнее см. Https://issues.apache.org/jira/browse/LOG4J2-891.

Подклассы должны реализовывать сами equals() и hashCode(). Извиняюсь за неудобства.

  • 0
    Хорошо, спасибо - так что реализация equals () в AbstractFilter теперь не работает? Требуется ли для этого отчет об ошибке?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню