@Override
  public final void close()
    throws IOException
  {
    State state = _state;
    
    if (state.isClosing()) {
      return;
    }
    
    _state = state.toClosing();
    
    try {
      flush(true);
    } finally {
      try {
        _state = _state.toClose();
      } catch (RuntimeException e) {
        throw new RuntimeException(state + ": " + e, e);
      }
    }
  }
@ Override public final void close ( ) throws IOException { State state = _state ; if ( state . isClosing ( ) ) { return ; } _state = state . toClosing ( ) ; try { flush ( true ) ; } finally { try { _state = _state . toClose ( ) ; } catch ( RuntimeException e ) { throw new RuntimeException ( state + ": " + e , e ) ; } } }
Closes the response stream