From 9a39e5e6aca5fafd61e72dc65ac2bd9a76df8a42 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Fri, 4 Dec 2015 09:55:17 +0100 Subject: [PATCH] Some configuration may totally miss network interfaces, even localhost. Fixes #4249 --- .../discoverers/network/NetworkChecker.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arduino-core/src/cc/arduino/packages/discoverers/network/NetworkChecker.java b/arduino-core/src/cc/arduino/packages/discoverers/network/NetworkChecker.java index 7b7dd3912..df58c220d 100644 --- a/arduino-core/src/cc/arduino/packages/discoverers/network/NetworkChecker.java +++ b/arduino-core/src/cc/arduino/packages/discoverers/network/NetworkChecker.java @@ -31,6 +31,8 @@ package cc.arduino.packages.discoverers.network; import javax.jmdns.NetworkTopologyDiscovery; import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; import java.util.*; public class NetworkChecker extends TimerTask { @@ -53,6 +55,9 @@ public class NetworkChecker extends TimerTask { @Override public void run() { + if (!hasNetworkInterfaces()) { + return; + } try { InetAddress[] curentAddresses = topology.getInetAddresses(); Set current = new HashSet<>(curentAddresses.length); @@ -68,4 +73,12 @@ public class NetworkChecker extends TimerTask { e.printStackTrace(); } } + + private boolean hasNetworkInterfaces() { + try { + return NetworkInterface.getNetworkInterfaces() != null; + } catch (SocketException e) { + return false; + } + } }