@Override public Peer accept() throws IOException, SocketTimeoutException { DomainSocket connSock = sock.accept(); Peer peer = null; boolean success = false; try { peer = new DomainPeer(connSock); success = true; return peer; } finally { if (!success) { if (peer != null) peer.close(); connSock.close(); } } }
@Override public void close() throws IOException { try { in.close(); } finally { try { out.close(); } finally { enclosedPeer.close(); } } }
@Override public void close() throws IOException { try { in.close(); } finally { try { out.close(); } finally { enclosedPeer.close(); } } }
@Override public void close() throws IOException { try { in.close(); } finally { try { out.close(); } finally { enclosedPeer.close(); } } }
@Override public synchronized void close() throws IOException { startOffset = -1; checksum = null; if (peerCache != null & sentStatusCode) { peerCache.put(datanodeID, peer); } else { peer.close(); } // in will be closed when its Socket is closed. }
@Override public synchronized void close() throws IOException { startOffset = -1; checksum = null; if (peerCache != null & sentStatusCode) { peerCache.put(datanodeID, peer); } else { peer.close(); } // in will be closed when its Socket is closed. }
@Override public synchronized void close() throws IOException { packetReceiver.close(); startOffset = -1; checksum = null; if (peerCache != null && sentStatusCode) { peerCache.put(datanodeID, peer); } else { peer.close(); } // in will be closed when its Socket is closed. }
@Override public synchronized void close() throws IOException { packetReceiver.close(); startOffset = -1; checksum = null; if (peerCache != null && sentStatusCode) { peerCache.put(datanodeID, peer); } else { peer.close(); } // in will be closed when its Socket is closed. }
@Override public synchronized void close() throws IOException { packetReceiver.close(); startOffset = -1; checksum = null; if (peerCache != null && sentStatusCode) { peerCache.put(datanodeID, peer); } else { peer.close(); } // in will be closed when its Socket is closed. }
} finally { if (!success) { if (peer != null) peer.close(); socket.close();
@Override public Peer accept() throws IOException, SocketTimeoutException { DomainSocket connSock = sock.accept(); Peer peer = null; boolean success = false; try { peer = new DomainPeer(connSock); success = true; return peer; } finally { if (!success) { if (peer != null) peer.close(); connSock.close(); } } }
private synchronized Peer getInternal(DatanodeID dnId, boolean isDomain) { List<Value> sockStreamList = multimap.get(new Key(dnId, isDomain)); if (sockStreamList == null) { return null; } Iterator<Value> iter = sockStreamList.iterator(); while (iter.hasNext()) { Value candidate = iter.next(); iter.remove(); long ageMs = Time.monotonicNow() - candidate.getTime(); Peer peer = candidate.getPeer(); if (ageMs >= expiryPeriod) { try { peer.close(); } catch (IOException e) { LOG.warn("got IOException closing stale peer " + peer + ", which is " + ageMs + " ms old"); } } else if (!peer.isClosed()) { return peer; } } return null; }
private synchronized Peer getInternal(DatanodeID dnId, boolean isDomain) { List<Value> sockStreamList = multimap.get(new Key(dnId, isDomain)); if (sockStreamList == null) { return null; } Iterator<Value> iter = sockStreamList.iterator(); while (iter.hasNext()) { Value candidate = iter.next(); iter.remove(); long ageMs = Time.monotonicNow() - candidate.getTime(); Peer peer = candidate.getPeer(); if (ageMs >= expiryPeriod) { try { peer.close(); } catch (IOException e) { LOG.warn("got IOException closing stale peer " + peer + ", which is " + ageMs + " ms old"); } } else if (!peer.isClosed()) { return peer; } } return null; }
} finally { if (!success) { if (peer != null) peer.close(); socket.close();
@Override public Peer accept() throws IOException, SocketTimeoutException { DomainSocket connSock = sock.accept(); Peer peer = null; boolean success = false; try { peer = new DomainPeer(connSock); success = true; return peer; } finally { if (!success) { if (peer != null) peer.close(); connSock.close(); } } }
private synchronized Peer getInternal(DatanodeID dnId, boolean isDomain) { List<Value> sockStreamList = multimap.get(new Key(dnId, isDomain)); if (sockStreamList == null) { return null; } Iterator<Value> iter = sockStreamList.iterator(); while (iter.hasNext()) { Value candidate = iter.next(); iter.remove(); long ageMs = Time.monotonicNow() - candidate.getTime(); Peer peer = candidate.getPeer(); if (ageMs >= expiryPeriod) { try { peer.close(); } catch (IOException e) { LOG.warn("got IOException closing stale peer " + peer + ", which is " + ageMs + " ms old"); } } else if (!peer.isClosed()) { return peer; } } return null; }
assertSame(peers[i], peer); assertTrue(!peer.isClosed()); peer.close();
assertSame(peers[i], peer); assertTrue(!peer.isClosed()); peer.close();