ppkarwasz commented on code in PR #3505: URL: https://github.com/apache/logging-log4j2/pull/3505#discussion_r1974221590
########## log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java: ########## @@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final String name, final String this.value = value; } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final boolean value) { return put(key, Boolean.toString(value)); } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final Enum<?> value) { - return put(key, value.name()); + return put(key, Optional.ofNullable(value).map(Enum::name).orElse(null)); } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final int value) { return put(key, Integer.toString(value)); } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final Level level) { - return put(key, level.toString()); + return put(key, Optional.ofNullable(level).map(Level::toString).orElse(null)); } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final Object value) { - return put(key, value.toString()); + return put(key, Optional.ofNullable(value).map(Object::toString).orElse(null)); Review Comment: ```suggestion return put(key, Objects.toString(value, null)); ``` ########## log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java: ########## @@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final String name, final String this.value = value; } + /** {@inheritDoc} */ Review Comment: Do we need it? Since we don't add anything, we can leave the Javadoc empty. ########## log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java: ########## @@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final String name, final String this.value = value; } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final boolean value) { return put(key, Boolean.toString(value)); } + /** {@inheritDoc} */ @Override public T addAttribute(final String key, final Enum<?> value) { - return put(key, value.name()); + return put(key, Optional.ofNullable(value).map(Enum::name).orElse(null)); Review Comment: ```suggestion return put(key, value != null ? value.name() : null); ``` We tend to use more primitive expressions in Log4j to keep it garbage-free. For a configuration it doesn't matter, but you'll find a lot of simple `null` checks and iterations on arrays in the code. Personally I wouldn't use `Optional` for a single method call. -- 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 For queries about this service, please contact Infrastructure at: us...@infra.apache.org