You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2020/05/13 13:36:43 UTC

[logging-log4j2] branch release-2.x updated: [LOG4J2-2844] Null pointer exception when no network interfaces are available.

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

ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/release-2.x by this push:
     new f143419  [LOG4J2-2844] Null pointer exception when no network interfaces are available.
f143419 is described below

commit f14341935c9e537cd8a002e8f716e2413e1a2bf1
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed May 13 09:36:37 2020 -0400

    [LOG4J2-2844] Null pointer exception when no network interfaces are
    available.
    
    Also fix POM version from "2.14.0--SNAPSHOT" to "2.14.0-SNAPSHOT".
---
 log4j-1.2-api/pom.xml                              |  2 +-
 log4j-api-java9/pom.xml                            |  2 +-
 log4j-api/pom.xml                                  |  2 +-
 log4j-appserver/pom.xml                            |  2 +-
 log4j-bom/pom.xml                                  |  2 +-
 log4j-cassandra/pom.xml                            |  2 +-
 log4j-core-its/pom.xml                             |  2 +-
 log4j-core-java9/pom.xml                           |  2 +-
 log4j-core/pom.xml                                 |  2 +-
 .../apache/logging/log4j/core/util/ArrayUtils.java | 11 +++++++
 .../apache/logging/log4j/core/util/NetUtils.java   | 38 ++++++++++++----------
 log4j-couchdb/pom.xml                              |  2 +-
 log4j-distribution/pom.xml                         |  2 +-
 log4j-docker/pom.xml                               |  2 +-
 log4j-flume-ng/pom.xml                             |  2 +-
 log4j-iostreams/pom.xml                            |  2 +-
 log4j-jcl/pom.xml                                  |  2 +-
 log4j-jdbc-dbcp2/pom.xml                           |  2 +-
 log4j-jmx-gui/pom.xml                              |  2 +-
 log4j-jpa/pom.xml                                  |  2 +-
 log4j-jpl/pom.xml                                  |  2 +-
 log4j-jul/pom.xml                                  |  2 +-
 log4j-kubernetes/pom.xml                           |  2 +-
 log4j-liquibase/pom.xml                            |  2 +-
 log4j-mongodb2/pom.xml                             |  2 +-
 log4j-mongodb3/pom.xml                             |  2 +-
 log4j-osgi/pom.xml                                 |  2 +-
 log4j-perf/pom.xml                                 |  4 +--
 log4j-samples/log4j-samples-configuration/pom.xml  |  2 +-
 log4j-samples/log4j-samples-flume-common/pom.xml   |  2 +-
 log4j-samples/log4j-samples-flume-embedded/pom.xml |  2 +-
 log4j-samples/log4j-samples-flume-remote/pom.xml   |  2 +-
 .../log4j-samples-loggerProperties/pom.xml         |  2 +-
 log4j-samples/pom.xml                              |  2 +-
 log4j-slf4j-impl/pom.xml                           |  2 +-
 log4j-slf4j18-impl/pom.xml                         |  2 +-
 .../log4j-spring-cloud-config-client/pom.xml       |  2 +-
 .../pom.xml                                        |  2 +-
 .../pom.xml                                        |  2 +-
 .../log4j-spring-cloud-config-samples/pom.xml      |  2 +-
 log4j-spring-cloud-config/pom.xml                  |  2 +-
 log4j-taglib/pom.xml                               |  2 +-
 log4j-to-slf4j/pom.xml                             |  2 +-
 log4j-web/pom.xml                                  |  2 +-
 pom.xml                                            |  2 +-
 src/changes/changes.xml                            |  5 +++
 46 files changed, 81 insertions(+), 61 deletions(-)

diff --git a/log4j-1.2-api/pom.xml b/log4j-1.2-api/pom.xml
index fe98c91..eef9383 100644
--- a/log4j-1.2-api/pom.xml
+++ b/log4j-1.2-api/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-1.2-api</artifactId>
diff --git a/log4j-api-java9/pom.xml b/log4j-api-java9/pom.xml
index 636312c..a7b36e1 100644
--- a/log4j-api-java9/pom.xml
+++ b/log4j-api-java9/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-api-java9</artifactId>
diff --git a/log4j-api/pom.xml b/log4j-api/pom.xml
index 1f8cb43..c90000e 100644
--- a/log4j-api/pom.xml
+++ b/log4j-api/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-api</artifactId>
diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml
index a56071b..1822c85 100644
--- a/log4j-appserver/pom.xml
+++ b/log4j-appserver/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j</artifactId>
     <groupId>org.apache.logging.log4j</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-bom/pom.xml b/log4j-bom/pom.xml
index 5d656b6..e663207 100644
--- a/log4j-bom/pom.xml
+++ b/log4j-bom/pom.xml
@@ -26,7 +26,7 @@
   <description>Apache Log4j Bill of Materials</description>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-bom</artifactId>
-  <version>2.14.0--SNAPSHOT</version>
+  <version>2.14.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <dependencyManagement>
     <dependencies>
diff --git a/log4j-cassandra/pom.xml b/log4j-cassandra/pom.xml
index 2f45537..28cb046 100644
--- a/log4j-cassandra/pom.xml
+++ b/log4j-cassandra/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-core-its/pom.xml b/log4j-core-its/pom.xml
index 30ad416..294fc5f 100644
--- a/log4j-core-its/pom.xml
+++ b/log4j-core-its/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-core-its</artifactId>
diff --git a/log4j-core-java9/pom.xml b/log4j-core-java9/pom.xml
index bbdf250..5634b5d 100644
--- a/log4j-core-java9/pom.xml
+++ b/log4j-core-java9/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-core-java9</artifactId>
diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml
index 7d18071..dcb572f 100644
--- a/log4j-core/pom.xml
+++ b/log4j-core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-core</artifactId>
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ArrayUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ArrayUtils.java
index bcf8d54..8cf448e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ArrayUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ArrayUtils.java
@@ -25,6 +25,17 @@ import java.lang.reflect.Array;
 public class ArrayUtils {
 
     /**
+     * Checks if an array of Objects is empty or {@code null}.
+     *
+     * @param array  the array to test
+     * @return {@code true} if the array is empty or {@code null}
+     * @since 2.1
+     */
+    public static boolean isEmpty(final byte[] array) {
+        return getLength(array) == 0;
+    }
+    
+    /**
      * <p>Returns the length of the specified array.
      * This method can deal with {@code Object} arrays and with primitive arrays.</p>
      *
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
index e848822..195dbff 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
@@ -52,19 +52,21 @@ public final class NetUtils {
     public static String getLocalHostname() {
         try {
             final InetAddress addr = InetAddress.getLocalHost();
-            return addr.getHostName();
+            return addr == null ? UNKNOWN_LOCALHOST : addr.getHostName();
         } catch (final UnknownHostException uhe) {
             try {
                 final Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
-                while (interfaces.hasMoreElements()) {
-                    final NetworkInterface nic = interfaces.nextElement();
-                    final Enumeration<InetAddress> addresses = nic.getInetAddresses();
-                    while (addresses.hasMoreElements()) {
-                        final InetAddress address = addresses.nextElement();
-                        if (!address.isLoopbackAddress()) {
-                            final String hostname = address.getHostName();
-                            if (hostname != null) {
-                                return hostname;
+                if (interfaces != null) {
+                    while (interfaces.hasMoreElements()) {
+                        final NetworkInterface nic = interfaces.nextElement();
+                        final Enumeration<InetAddress> addresses = nic.getInetAddresses();
+                        while (addresses.hasMoreElements()) {
+                            final InetAddress address = addresses.nextElement();
+                            if (!address.isLoopbackAddress()) {
+                                final String hostname = address.getHostName();
+                                if (hostname != null) {
+                                    return hostname;
+                                }
                             }
                         }
                     }
@@ -95,18 +97,20 @@ public final class NetUtils {
                 }
                 if (mac == null) {
                     final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
-                    while (networkInterfaces.hasMoreElements() && mac == null) {
-                        final NetworkInterface nic = networkInterfaces.nextElement();
-                        if (isUpAndNotLoopback(nic)) {
-                            mac = nic.getHardwareAddress();
+                    if (networkInterfaces != null) {
+                        while (networkInterfaces.hasMoreElements() && mac == null) {
+                            final NetworkInterface nic = networkInterfaces.nextElement();
+                            if (isUpAndNotLoopback(nic)) {
+                                mac = nic.getHardwareAddress();
+                            }
                         }
                     }
                 }
             } catch (final SocketException e) {
                 LOGGER.catching(e);
             }
-            if (mac == null || mac.length == 0) {
-                // Emulate a mac address with an IP v4 or v6
+            if (ArrayUtils.isEmpty(mac) && localHost != null) {
+                // Emulate a MAC address with an IP v4 or v6
                 final byte[] address = localHost.getAddress();
                 // Take only 6 bytes if the address is an IPv6 otherwise will pad with two zero bytes
                 mac = Arrays.copyOf(address, 6);
@@ -123,7 +127,7 @@ public final class NetUtils {
      */
     public static String getMacAddressString() {
         final byte[] macAddr = getMacAddress();
-        if (macAddr != null && macAddr.length > 0) {
+        if (!ArrayUtils.isEmpty(macAddr)) {
             StringBuilder sb = new StringBuilder(String.format("%02x", macAddr[0]));
             for (int i = 1; i < macAddr.length; ++i) {
                 sb.append(":").append(String.format("%02x", macAddr[i]));
diff --git a/log4j-couchdb/pom.xml b/log4j-couchdb/pom.xml
index 1e56e93..40240e2 100644
--- a/log4j-couchdb/pom.xml
+++ b/log4j-couchdb/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-distribution/pom.xml b/log4j-distribution/pom.xml
index c96e3d1..be997a5 100644
--- a/log4j-distribution/pom.xml
+++ b/log4j-distribution/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-distribution</artifactId>
diff --git a/log4j-docker/pom.xml b/log4j-docker/pom.xml
index f8cebe1..0ce9fbf 100644
--- a/log4j-docker/pom.xml
+++ b/log4j-docker/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-docker</artifactId>
diff --git a/log4j-flume-ng/pom.xml b/log4j-flume-ng/pom.xml
index 6bd991d..9c108e0 100644
--- a/log4j-flume-ng/pom.xml
+++ b/log4j-flume-ng/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-flume-ng</artifactId>
diff --git a/log4j-iostreams/pom.xml b/log4j-iostreams/pom.xml
index eb79e9e..25abb7e 100644
--- a/log4j-iostreams/pom.xml
+++ b/log4j-iostreams/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-iostreams</artifactId>
diff --git a/log4j-jcl/pom.xml b/log4j-jcl/pom.xml
index ff06fab..eeb6b63 100644
--- a/log4j-jcl/pom.xml
+++ b/log4j-jcl/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-jcl</artifactId>
diff --git a/log4j-jdbc-dbcp2/pom.xml b/log4j-jdbc-dbcp2/pom.xml
index e782dda..4144e0c 100644
--- a/log4j-jdbc-dbcp2/pom.xml
+++ b/log4j-jdbc-dbcp2/pom.xml
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-jmx-gui/pom.xml b/log4j-jmx-gui/pom.xml
index 80742cd..f670fc0 100644
--- a/log4j-jmx-gui/pom.xml
+++ b/log4j-jmx-gui/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-jmx-gui</artifactId>
diff --git a/log4j-jpa/pom.xml b/log4j-jpa/pom.xml
index ba6e9e1..8d557d4 100644
--- a/log4j-jpa/pom.xml
+++ b/log4j-jpa/pom.xml
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-jpl/pom.xml b/log4j-jpl/pom.xml
index fc24002..c589fc0 100644
--- a/log4j-jpl/pom.xml
+++ b/log4j-jpl/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j</artifactId>
     <groupId>org.apache.logging.log4j</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/log4j-jul/pom.xml b/log4j-jul/pom.xml
index 4b09139..d29f12a 100644
--- a/log4j-jul/pom.xml
+++ b/log4j-jul/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j</artifactId>
     <groupId>org.apache.logging.log4j</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/log4j-kubernetes/pom.xml b/log4j-kubernetes/pom.xml
index b598de6..1326d45 100644
--- a/log4j-kubernetes/pom.xml
+++ b/log4j-kubernetes/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-kubernetes</artifactId>
diff --git a/log4j-liquibase/pom.xml b/log4j-liquibase/pom.xml
index de78e13..902be33 100644
--- a/log4j-liquibase/pom.xml
+++ b/log4j-liquibase/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-liquibase</artifactId>
diff --git a/log4j-mongodb2/pom.xml b/log4j-mongodb2/pom.xml
index 1096677..264d64e 100644
--- a/log4j-mongodb2/pom.xml
+++ b/log4j-mongodb2/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-mongodb3/pom.xml b/log4j-mongodb3/pom.xml
index e7702b2..603e6cf 100644
--- a/log4j-mongodb3/pom.xml
+++ b/log4j-mongodb3/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/log4j-osgi/pom.xml b/log4j-osgi/pom.xml
index fff8a5a..727c8cc 100644
--- a/log4j-osgi/pom.xml
+++ b/log4j-osgi/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-osgi</artifactId>
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index 28b985a..9ccca73 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j</artifactId>
     <groupId>org.apache.logging.log4j</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
@@ -67,7 +67,7 @@
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-jpa</artifactId>
-      <version>2.14.0--SNAPSHOT</version>
+      <version>2.14.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
diff --git a/log4j-samples/log4j-samples-configuration/pom.xml b/log4j-samples/log4j-samples-configuration/pom.xml
index 715417a..6607cab 100644
--- a/log4j-samples/log4j-samples-configuration/pom.xml
+++ b/log4j-samples/log4j-samples-configuration/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-configuration</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-samples/log4j-samples-flume-common/pom.xml b/log4j-samples/log4j-samples-flume-common/pom.xml
index 6e1391f..231620d 100644
--- a/log4j-samples/log4j-samples-flume-common/pom.xml
+++ b/log4j-samples/log4j-samples-flume-common/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-flume-common</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-samples/log4j-samples-flume-embedded/pom.xml b/log4j-samples/log4j-samples-flume-embedded/pom.xml
index a394966..0a0220c 100644
--- a/log4j-samples/log4j-samples-flume-embedded/pom.xml
+++ b/log4j-samples/log4j-samples-flume-embedded/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-flume-embedded</artifactId>
   <packaging>war</packaging>
diff --git a/log4j-samples/log4j-samples-flume-remote/pom.xml b/log4j-samples/log4j-samples-flume-remote/pom.xml
index 1ec2ad6..49b74a9 100644
--- a/log4j-samples/log4j-samples-flume-remote/pom.xml
+++ b/log4j-samples/log4j-samples-flume-remote/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-flume-remote</artifactId>
   <packaging>war</packaging>
diff --git a/log4j-samples/log4j-samples-loggerProperties/pom.xml b/log4j-samples/log4j-samples-loggerProperties/pom.xml
index 565eba8..135e376 100644
--- a/log4j-samples/log4j-samples-loggerProperties/pom.xml
+++ b/log4j-samples/log4j-samples-loggerProperties/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-loggerProperties</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index a9ec992..dc0b925 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <groupId>org.apache.logging.log4j.samples</groupId>
diff --git a/log4j-slf4j-impl/pom.xml b/log4j-slf4j-impl/pom.xml
index 176ba79..9d22ca5 100644
--- a/log4j-slf4j-impl/pom.xml
+++ b/log4j-slf4j-impl/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-slf4j-impl</artifactId>
diff --git a/log4j-slf4j18-impl/pom.xml b/log4j-slf4j18-impl/pom.xml
index e5b5721..278b0bb 100644
--- a/log4j-slf4j18-impl/pom.xml
+++ b/log4j-slf4j18-impl/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-slf4j18-impl</artifactId>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
index 85e03d1..dcc20ca 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-spring-cloud-config</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-spring-cloud-config-client</artifactId>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
index 6e807f9..9b31dfb 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.logging.log4j.samples</groupId>
     <artifactId>log4j-spring-cloud-config-samples</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
index bf1e3c9..5bd8110 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
@@ -21,7 +21,7 @@
   <groupId>org.apache.logging.log4j.samples</groupId>
   <artifactId>log4j-spring-cloud-config-sample-server</artifactId>
   <packaging>jar</packaging>
-  <version>2.14.0--SNAPSHOT</version>
+  <version>2.14.0-SNAPSHOT</version>
 
   <name>Log4j Sample Configuration Service</name>
   <description>Sample Cloud Config Server</description>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
index 460b531..829bf9e 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-spring-cloud-config</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <groupId>org.apache.logging.log4j.samples</groupId>
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index 9b86049..c37f1d2 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <groupId>org.apache.logging.log4j</groupId>
diff --git a/log4j-taglib/pom.xml b/log4j-taglib/pom.xml
index fc79690..221327b 100644
--- a/log4j-taglib/pom.xml
+++ b/log4j-taglib/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-taglib</artifactId>
diff --git a/log4j-to-slf4j/pom.xml b/log4j-to-slf4j/pom.xml
index 4c2cdf8..2f8ce47 100644
--- a/log4j-to-slf4j/pom.xml
+++ b/log4j-to-slf4j/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-to-slf4j</artifactId>
diff --git a/log4j-web/pom.xml b/log4j-web/pom.xml
index 0191340..44afcbe 100644
--- a/log4j-web/pom.xml
+++ b/log4j-web/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j</artifactId>
     <groupId>org.apache.logging.log4j</groupId>
-    <version>2.14.0--SNAPSHOT</version>
+    <version>2.14.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/pom.xml b/pom.xml
index 0f60fff..1af0884 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
   <artifactId>log4j</artifactId>
   <packaging>pom</packaging>
   <name>Apache Log4j 2</name>
-  <version>2.14.0--SNAPSHOT</version>
+  <version>2.14.0-SNAPSHOT</version>
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2d1fcf7..8a7f985 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -29,6 +29,11 @@
          - "update" - Change
          - "remove" - Removed
     -->
+    <release version="2.14.0" date="2020-MM-DD" description="GA Release 2.14.0">
+      <action issue="LOG4J2-2844" dev="ggregory" type="fix">
+        Null pointer exception when no network interfaces are available.
+      </action>
+    </release>
     <release version="2.13.3" date="2020-05-10" description="GA Release 2.13.3">
       <action issue="LOG4J2-2838" dev="rgoers" type="fix">
         Fix NullPointerException in ThreadContextDataInjector.