question: @ Override public void close ( ) throws IOException { synchronized ( lock ) { if ( encoder != null ) { drainEncoder ( ) ; flushBytes ( false ) ; out . close ( ) ; encoder = null ; bytes = null ; } } }
target:  Closes this writer. This implementation flushes the buffer as well as the target stream. The target stream is then closed and the resources for the buffer and converter are released. <p> <p>Only the first invocation of this method has any effect. Subsequent calls do nothing.