JWT007 opened a new issue, #3464: URL: https://github.com/apache/logging-log4j2/issues/3464
Log4j 2.24.3 --- When using a configuration builder and adding a FilterComponentBuilder, generating XML from the ConfigurationBuilder causes exception when the filter is defined with a null OnMatch/OnMismatch Result. Configuring the onMatch/onMismatch attributes is not required - null should be a valid value. In this case, no attributtes should be added. However in tthe DefaulttFilterComponentBuilder, attributes are added to tthe builder without performing a null-check first. ``` class DefaultFilterComponentBuilder extends DefaultComponentAndConfigurationBuilder<FilterComponentBuilder> implements FilterComponentBuilder { public DefaultFilterComponentBuilder( final DefaultConfigurationBuilder<? extends Configuration> builder, final String type, final String onMatch, final String onMismatch) { super(builder, type); addAttribute(AbstractFilterBuilder.ATTR_ON_MATCH, onMatch); addAttribute(AbstractFilterBuilder.ATTR_ON_MISMATCH, onMismatch); } } ``` This results attributes with *null* values in the builder tree which can cause XML serialization problems. I think this might be better: ``` class DefaultFilterComponentBuilder extends DefaultComponentAndConfigurationBuilder<FilterComponentBuilder> implements FilterComponentBuilder { public DefaultFilterComponentBuilder( final DefaultConfigurationBuilder<? extends Configuration> builder, final String type, final String onMatch, final String onMismatch) { super(builder, type); Optional.ofNullable(onMatch).ifPresent(() -> addAttribute(AbstractFilterBuilder.ATTR_ON_MATCH, onMatch)); Optional.ofNullable(onMismatch).ifPresent(() -> addAttribute(AbstractFilterBuilder.ATTR_ON_MISMATCH, onMismatch)); } } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@logging.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org