text: public override void close(){lock (@lock){if (isClosed()){return;}System.Exception thrown = null;try{flushInternal();}catch (System.Exception e){thrown = e;}buf = null;try{@out.close();}catch (System.Exception e){if (thrown == null){thrown = e;}}@out = null;if (thrown != null){Sharpen.Util.Throw(thrown);}}}