LOG4J2-2707: ArrayIndexOutOfBoundsException in UuidUtil, when MAC address is longer than 6 bytes
Cosmetics. Added one more test case to unit test.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
index fdf950f..cf1d9d3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
@@ -52,8 +52,6 @@
private static final long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L;
private static final long INITIAL_UUID_SEQNO = PropertiesUtil.getProperties().getLongProperty(UUID_SEQUENCE, 0);
- private static final long LEAST;
-
private static final long LOW_MASK = 0xffffffffL;
private static final long MID_MASK = 0xffff00000000L;
private static final long HIGH_MASK = 0xfff000000000000L;
@@ -63,10 +61,7 @@
private static final int SHIFT_6 = 48;
private static final int HUNDRED_NANOS_PER_MILLI = 10000;
- static {
- byte[] mac = NetUtils.getMacAddress();
- LEAST = initialize(mac);
- }
+ private static final long LEAST = initialize(NetUtils.getMacAddress());
/* This class cannot be instantiated */
private UuidUtil() {
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/UuidTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/UuidTest.java
index da6a86e..dbb4517 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/UuidTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/UuidTest.java
@@ -65,6 +65,9 @@
@Test
public void testInitialize() {
+ // Test if no ArrayIndexOutOfBoundsException is thrown when Mac address array is null
+ UuidUtil.initialize(null);
+
// Test if no ArrayIndexOutOfBoundsException is thrown for different Mac address lengths
for (int i=0; i < 10; i++) {
// Create MAC address byte array with i as size