Remko Popma commented on LOG4J2-1593:

The alternative is to override equals on AbstractFilter, but I think abstract 
classes in principle should not implement equals().
What we did instead is provide {{AbstractFilter.equalsImpl()}} and 
{{AbstractFilter.hashCodeImpl()}} that subclasses can use to base their 
implementation of equals() on.

> Concrete Filter implementations should override equals and hashCode
> -------------------------------------------------------------------
>                 Key: LOG4J2-1593
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1593
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Filters
>            Reporter: Remko Popma
>             Fix For: 2.8
> For {{CompositeFilter.remove(Filter)}} to work correctly, concrete Filter 
> implementations should override {{equals}} and {{hashCode}}. 
> This is because CompositeFilter uses List.remove(Object), comparing by 
> equality. Applications that keep a reference to the Filter object that was 
> registered will work, but for example registering and unregistering 
> serialized and deserialized instances via JMX will not work without this.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to