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

Reply via email to