From e91d4af3bfa15fc3883be7ef7295723ddc6b3b06 Mon Sep 17 00:00:00 2001 From: Edward Capriolo Date: Wed, 20 Apr 2016 14:17:39 -0400 Subject: [PATCH 1/2] Why set to null --- .../com/google/code/gossip/manager/PassiveGossipThread.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/google/code/gossip/manager/PassiveGossipThread.java b/src/main/java/com/google/code/gossip/manager/PassiveGossipThread.java index b466bc7..acffb94 100644 --- a/src/main/java/com/google/code/gossip/manager/PassiveGossipThread.java +++ b/src/main/java/com/google/code/gossip/manager/PassiveGossipThread.java @@ -64,7 +64,6 @@ abstract public class PassiveGossipThread implements Runnable { GossipService.LOGGER.debug("I am " + _gossipManager.getMyself()); } catch (SocketException ex) { GossipService.LOGGER.warn(ex); - _server = null; throw new RuntimeException(ex); } _keepRunning = new AtomicBoolean(true); @@ -139,7 +138,9 @@ abstract public class PassiveGossipThread implements Runnable { } public void shutdown() { + try { _server.close(); + } catch (RuntimeException ex){ } } /** From abbb088d76b04be9f63fe273155a0bce9232e473 Mon Sep 17 00:00:00 2001 From: Edward Capriolo Date: Wed, 20 Apr 2016 14:31:46 -0400 Subject: [PATCH 2/2] More null checking here --- .../com/google/code/gossip/manager/GossipManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/code/gossip/manager/GossipManager.java b/src/main/java/com/google/code/gossip/manager/GossipManager.java index f3ee91b..99aef68 100644 --- a/src/main/java/com/google/code/gossip/manager/GossipManager.java +++ b/src/main/java/com/google/code/gossip/manager/GossipManager.java @@ -188,8 +188,12 @@ public abstract class GossipManager extends Thread implements NotificationListen public void shutdown() { _gossipServiceRunning.set(false); _gossipThreadExecutor.shutdown(); - passiveGossipThread.shutdown(); - activeGossipThread.shutdown(); + if (passiveGossipThread != null){ + passiveGossipThread.shutdown(); + } + if (activeGossipThread != null){ + activeGossipThread.shutdown(); + } try { boolean result = _gossipThreadExecutor.awaitTermination(1000, TimeUnit.MILLISECONDS); if (!result){