public InterceptedStream<T> close(String index) {

        // Remove associated stream
        InterceptedStream<T> stream = streams.remove(index);
        if (stream == null)
            return null;

        // Close stream if it exists
        close(stream.getStream());
        return stream;

    }
Closes the stream object associated with the stream having the given
index, if any, removing it from the map, logging any errors that occur
during closure, and unblocking any in-progress calls to waitFor() for
that stream. If no such stream exists within this map, then this
function has no effect.

@param index
    The index of the stream whose associated stream object should be
    closed.

@return
    The stream associated with the given index, if the stream was stored
    within this map, or null if no such stream exists.
guacamole/src/main/java/org/apache/guacamole/tunnel/InterceptedStreamMap.java