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;
    }
protected Object shutdown ( ) throws IOException { logger . debug ( "shutdown" ) ; writer . close ( ) ; socketBox . setSocket ( null ) ; Object quitToken = context . getQuitToken ( ) ; if ( quitToken != null ) { source . close ( ) ; } return quitToken ; }
called after the transfer completes, before 226