]> git.basschouten.com Git - openhab-addons.git/commitdiff
Fix for NPE when getting network interface name (#14603)
authorMark Hilbush <mark@hilbush.com>
Tue, 14 Mar 2023 21:32:03 +0000 (17:32 -0400)
committerGitHub <noreply@github.com>
Tue, 14 Mar 2023 21:32:03 +0000 (22:32 +0100)
Signed-off-by: Mark Hilbush <mark@hilbush.com>
bundles/org.openhab.binding.benqprojector/src/main/java/org/openhab/binding/benqprojector/internal/discovery/MulticastListener.java
bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java
bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/discovery/MulticastListener.java
bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/MulticastListener.java
bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java

index f00d5ee1b57620273eca0bd4d6a532742f9b51f0..92e24ee0d6bfdc36187134a834240bc4f8addc54 100644 (file)
@@ -12,9 +12,7 @@
  */
 package org.openhab.binding.benqprojector.internal.discovery;
 
-import static org.openhab.binding.benqprojector.internal.BenqProjectorBindingConstants.DEFAULT_PORT;
-import static org.openhab.binding.benqprojector.internal.BenqProjectorBindingConstants.THING_PROPERTY_HOST;
-import static org.openhab.binding.benqprojector.internal.BenqProjectorBindingConstants.THING_PROPERTY_PORT;
+import static org.openhab.binding.benqprojector.internal.BenqProjectorBindingConstants.*;
 
 import java.io.IOException;
 import java.net.DatagramPacket;
@@ -59,8 +57,9 @@ public class MulticastListener {
      */
     public MulticastListener(String ipv4Address) throws IOException, SocketException {
         InetAddress ifAddress = InetAddress.getByName(ipv4Address);
+        NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
         logger.debug("Discovery job using address {} on network interface {}", ifAddress.getHostAddress(),
-                NetworkInterface.getByInetAddress(ifAddress).getName());
+                netIF != null ? netIF.getName() : "UNKNOWN");
         socket = new MulticastSocket(AMX_MULTICAST_PORT);
         socket.setInterface(ifAddress);
         socket.setSoTimeout(DEFAULT_SOCKET_TIMEOUT_SEC);
index 1ef3fd374cfdc6b36674c0cc6a27ec7ef47450dc..1430b34109897f6e24401bfad4852762176f3b53 100644 (file)
@@ -1024,9 +1024,9 @@ public class BigAssFanHandler extends BaseThingHandler {
             deviceIsConnected = false;
             try {
                 ifAddress = InetAddress.getByName(ipv4Address);
-
+                NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
                 logger.debug("Handler for {} using address {} on network interface {}", thing.getUID(), ipv4Address,
-                        NetworkInterface.getByInetAddress(ifAddress).getName());
+                        netIF != null ? netIF.getName() : "UNKNOWN");
             } catch (UnknownHostException e) {
                 logger.warn("Handler for {} got UnknownHostException getting local IPv4 net interface: {}",
                         thing.getUID(), e.getMessage(), e);
index b7f3be2f2e1a5649996183aed7e41d04f6717706..44ff73951448950e1375f7901419e821c0f77c77 100644 (file)
@@ -12,9 +12,7 @@
  */
 package org.openhab.binding.epsonprojector.internal.discovery;
 
-import static org.openhab.binding.epsonprojector.internal.EpsonProjectorBindingConstants.DEFAULT_PORT;
-import static org.openhab.binding.epsonprojector.internal.EpsonProjectorBindingConstants.THING_PROPERTY_HOST;
-import static org.openhab.binding.epsonprojector.internal.EpsonProjectorBindingConstants.THING_PROPERTY_PORT;
+import static org.openhab.binding.epsonprojector.internal.EpsonProjectorBindingConstants.*;
 
 import java.io.IOException;
 import java.net.DatagramPacket;
@@ -59,8 +57,9 @@ public class MulticastListener {
      */
     public MulticastListener(String ipv4Address) throws IOException, SocketException {
         InetAddress ifAddress = InetAddress.getByName(ipv4Address);
+        NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
         logger.debug("Discovery job using address {} on network interface {}", ifAddress.getHostAddress(),
-                NetworkInterface.getByInetAddress(ifAddress).getName());
+                netIF != null ? netIF.getName() : "UNKNOWN");
         socket = new MulticastSocket(AMX_MULTICAST_PORT);
         socket.setInterface(ifAddress);
         socket.setSoTimeout(DEFAULT_SOCKET_TIMEOUT_SEC);
index 3819fdca8317b1bc492aa6020bc5d14f9e482cd9..17c9312c114afeac9e05a96b799e37df8394de60 100644 (file)
@@ -63,8 +63,9 @@ public class MulticastListener {
      */
     public MulticastListener(String ipv4Address) throws IOException, SocketException {
         InetAddress ifAddress = InetAddress.getByName(ipv4Address);
+        NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
         logger.debug("Discovery job using address {} on network interface {}", ifAddress.getHostAddress(),
-                NetworkInterface.getByInetAddress(ifAddress).getName());
+                netIF != null ? netIF.getName() : "UNKNOWN");
         socket = new MulticastSocket(GC_MULTICAST_PORT);
         socket.setInterface(ifAddress);
         socket.setSoTimeout(DEFAULT_SOCKET_TIMEOUT);
index 9456d28227f516f0490ecdd97cdffc4ea4917f61..a56c65c3946b9c23739f0dd9b90f8deb47b83eec 100644 (file)
@@ -105,8 +105,9 @@ public class GlobalCacheHandler extends BaseThingHandler {
         logger.debug("Initializing thing {}", thingID());
         try {
             ifAddress = InetAddress.getByName(ipv4Address);
+            NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
             logger.debug("Handler using address {} on network interface {}", ifAddress.getHostAddress(),
-                    NetworkInterface.getByInetAddress(ifAddress).getName());
+                    netIF != null ? netIF.getName() : "UNKNOWN");
         } catch (SocketException e) {
             logger.error("Handler got Socket exception creating multicast socket: {}", e.getMessage());
             markThingOfflineWithError(ThingStatusDetail.OFFLINE.CONFIGURATION_ERROR, "No suitable network interface");