From 089b2d8d20393a2bc7dc7fc16548f9dd6156ff6a Mon Sep 17 00:00:00 2001 From: J-N-K Date: Sun, 27 Jan 2019 16:52:25 +0100 Subject: [PATCH] [network] fix discovery service (#4729) * fix discovery service * shutdown executor service Signed-off-by: Jan N. Klug Signed-off-by: Maximilian Hess --- .../internal/discovery/NetworkDiscoveryService.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/discovery/NetworkDiscoveryService.java b/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/discovery/NetworkDiscoveryService.java index 84589cdb28002..6978cc56cf2e6 100644 --- a/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/discovery/NetworkDiscoveryService.java +++ b/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/discovery/NetworkDiscoveryService.java @@ -96,6 +96,9 @@ protected void modified(@Nullable Map config) { @Override @Deactivate protected void deactivate() { + if (executorService != null) { + executorService.shutdown(); + } super.deactivate(); } @@ -121,6 +124,9 @@ public void finalDetectionResult(PresenceDetectionValue value) { */ @Override protected void startScan() { + if (executorService == null) { + executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2); + } final ExecutorService service = executorService; if (service == null) { return; @@ -129,7 +135,6 @@ protected void startScan() { logger.trace("Starting Network Device Discovery"); final Set networkIPs = networkUtils.getNetworkIPs(MAXIMUM_IPS_PER_INTERFACE); - executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2); scannedIPcount = 0; for (String ip : networkIPs) { @@ -233,7 +238,7 @@ public void newPingDevice(String ip) { Map properties = new HashMap<>(); properties.put(PARAMETER_HOSTNAME, ip); - thingDiscovered(DiscoveryResultBuilder.create(createPingUID(ip)).withTTL(120).withProperties(properties) - .withLabel("Network Device (" + ip + ")").build()); + thingDiscovered(DiscoveryResultBuilder.create(createPingUID(ip)).withTTL(DISCOVERY_RESULT_TTL) + .withProperties(properties).withLabel("Network Device (" + ip + ")").build()); } }