Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyValuePair - no validation on required "key" / KeyValuePairComponentBuilder NPEs on generated XML #3472

Open
JWT007 opened this issue Feb 19, 2025 · 0 comments

Comments

@JWT007
Copy link
Contributor

JWT007 commented Feb 19, 2025

Log4j 2.24.3

A KeyValuePair without a key is useless (since it cannot be referenced). A null key will also cause problems in multiple locations when added to Map implementations.

Theoretically the same is true of the value but the null cases seem to all be handled when working with KVPs.

The KeyValuePair provides no validation / required on the @PluginAttribute or in the builder.

In addition, the DefaultKeyValuePairComponentBuilder sets the atttributes on the component builder without validating whether they are null.

If the builder is used to generate XML this results in null attributes which will break parsing that XML.

  public DefaultKeyValuePairComponentBuilder(
            final DefaultConfigurationBuilder<? extends Configuration> builder, final String key, final String value) {
        super(builder, "KeyValuePair");
        addAttribute("key", key);
        addAttribute("value", value);
    }

This constructor should probably throw an NPE or IllegalArgumentException if the key is null and only add the value attribute if it is not null.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant