From 1c1724b189d9a3dc8dd272cfc644d9e14d72470e Mon Sep 17 00:00:00 2001 From: leventov Date: Fri, 19 Sep 2014 13:40:20 +0400 Subject: [PATCH] HCOLL-133 don't try to close channels thrown exceptions if TCP/UDP replicator already closed --- .../net/openhft/chronicle/map/TcpReplicator.java | 15 ++++++++++----- .../chronicle/map/UdpChannelReplicator.java | 3 ++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java index bd73f8202..2bf4c4f6c 100644 --- a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java +++ b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java @@ -148,16 +148,21 @@ class TcpReplicator extends AbstractChannelReplicator implements Closeable { onWrite(key, approxTime); } catch (CancelledKeyException e) { - quietClose(key, e); + if (!isClosed) + quietClose(key, e); } catch (ClosedSelectorException e) { - quietClose(key, e); + if (!isClosed) + quietClose(key, e); } catch (IOException e) { - quietClose(key, e); + if (!isClosed) + quietClose(key, e); } catch (InterruptedException e) { - quietClose(key, e); + if (!isClosed) + quietClose(key, e); } catch (Exception e) { LOG.info("", e); - closeEarlyAndQuietly(key.channel()); + if (!isClosed) + closeEarlyAndQuietly(key.channel()); } } selectionKeys.clear(); diff --git a/src/main/java/net/openhft/chronicle/map/UdpChannelReplicator.java b/src/main/java/net/openhft/chronicle/map/UdpChannelReplicator.java index 6330bc714..5d6b39548 100644 --- a/src/main/java/net/openhft/chronicle/map/UdpChannelReplicator.java +++ b/src/main/java/net/openhft/chronicle/map/UdpChannelReplicator.java @@ -151,7 +151,8 @@ class UdpChannelReplicator extends AbstractChannelReplicator implements Replica. } catch (Exception e) { LOG.error("", e); - closeEarlyAndQuietly(key.channel()); + if (!isClosed) + closeEarlyAndQuietly(key.channel()); } }