code: protected Object shutdown() throws IOException {
  	logger.debug("shutdown");
  
  	// close the socket
  	writer.close();
  
  	// garbage collect the socket
  	socketBox.setSocket(null);
  
  	// attempt to obtain permission to close data source
  	Object quitToken = context.getQuitToken();
  
  	// data source is shared by all data channels,
  	// so should be closed by the last one exiting
  	if (quitToken != null) {
  	    source.close();
  	}
  
  	return quitToken;
      }
docs: called after the transfer completes, before 226