This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch fix/rebase-on-log4j-api-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit f5def618a596f666f86e73e3b420e65c9ba18c60
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Mon Mar 25 21:19:24 2024 +0100

    Adapt `log4j-flume-ng` to Log4j API 2.x
---
 .../log4j/flume/appender/FlumeEmbeddedManager.java | 28 ++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git 
a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
 
b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
index 50fc993f21..be80472cc4 100644
--- 
a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
+++ 
b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
@@ -18,6 +18,9 @@ package org.apache.logging.log4j.flume.appender;
 
 import static org.apache.logging.log4j.util.Strings.toRootUpperCase;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -29,7 +32,6 @@ import org.apache.logging.log4j.core.appender.ManagerFactory;
 import org.apache.logging.log4j.core.config.ConfigurationException;
 import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.kit.env.PropertyEnvironment;
-import org.apache.logging.log4j.util.NameUtil;
 import org.apache.logging.log4j.util.Strings;
 
 public class FlumeEmbeddedManager extends AbstractFlumeManager {
@@ -106,12 +108,34 @@ public class FlumeEmbeddedManager extends 
AbstractFlumeManager {
                 
props.append(prop.getName()).append('=').append(prop.getValue());
                 sep = "_";
             }
-            sb.append(NameUtil.md5(props.toString()));
+            sb.append(md5(props.toString()));
         }
 
         return sb.toString();
     }
 
+    @SuppressFBWarnings(value = "WEAK_MESSAGE_DIGEST_MD5", justification = 
"Used to create unique identifiers.")
+    private static String md5(final String input) {
+        try {
+            final byte[] inputBytes = input.getBytes();
+            final MessageDigest digest = MessageDigest.getInstance("MD5");
+            final byte[] bytes = digest.digest(inputBytes);
+            final StringBuilder md5 = new StringBuilder(bytes.length * 2);
+            for (final byte b : bytes) {
+                md5.append(Character.forDigit((0xFF & b) >> 4, 16));
+                md5.append(Character.forDigit(0x0F & b, 16));
+            }
+            return md5.toString();
+        }
+        // Every implementation of the Java platform is required to support 
MD5.
+        // Hence, this catch block should be unreachable.
+        // See 
https://docs.oracle.com/javase/8/docs/api/java/security/MessageDigest.html
+        // for details.
+        catch (final NoSuchAlgorithmException error) {
+            throw new RuntimeException(error);
+        }
+    }
+
     @Override
     public void send(final Event event) {
         try {

Reply via email to