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){ 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){ } } /**