private void removeStream(IStream stream) { if (stream.isUnidirectional()) stream.getAssociatedStream().disassociate(stream); IStream removed = streams.remove(stream.getId()); if (removed != null) { assert removed == stream; if (streamIds.get() % 2 == stream.getId() % 2) localStreamCount.decrementAndGet(); if (LOG.isDebugEnabled()) LOG.debug("Removed {}", stream); notifyStreamClosed(stream); } }