[
https://issues.apache.org/jira/browse/LOG4J2-2931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Piotr Karwasz closed LOG4J2-2931.
---------------------------------
> Configuring CompositeFilter via properties will generate error due to invalid
> arguments
> ---------------------------------------------------------------------------------------
>
> Key: LOG4J2-2931
> URL: https://issues.apache.org/jira/browse/LOG4J2-2931
> Project: Log4j 2
> Issue Type: Improvement
> Components: Core
> Affects Versions: 2.13.3
> Reporter: Oliver Limberg
> Assignee: Piotr Karwasz
> Priority: Minor
> Attachments: CompositeFilterPropertiesTest.java,
> log4j2-composite-filter.properties
>
>
> The attached test will produce the following errors:
> {noformat}
> ERROR filters contains invalid attributes "onMatch", "onMismatch"
> ERROR filters contains invalid attributes "onMatch", "onMismatch"
> {noformat}
> When the configuration is built, using DefaultConfigurationBuilder, filters
> are always built using the class DefaultFilterComponentBuilder.
> The constructor will always add the two attributes 'onMatch' and
> 'onMismatch'.
> However, the createFilters method (annotated with PluginFactory) of
> CompositeFilter, does not specify the two attributes, so they remain in the
> list of node attributes in PluginBuilder and when calling
> checkForRemainingAttributes, the error statements are generated.
> A simple solution could be to change the signature of createFilters to
> include those two attributes. The constructor of the CompositeFilter could
> stay untouched.
> {code:java}
> @PluginFactory
> public static CompositeFilter createFilters(@PluginElement("Filters") final
> Filter[] filters,
> @PluginAttribute("onMatch") final
> Result match,
> @PluginAttribute("onMismatch")
> final Result mismatch) {
> return new CompositeFilter(filters);
> }{code}
> This solution would required to make a minor change in addFilter of class
> AbstractFilterable and its test class.
> Another solution would be to modify the DefaultFilterComponentBuilder or
> even use DefaultCompositeFilterComponentBuilder when applicable in
> DefaultConfigurationBuilder.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)