docs: private void readWriteTransitionState(Constants.Direction direction) throws Http2Exception {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "readWriteTransitionState: entry: frame type: " + currentFrame.getFrameType() + " state: " + state);
          }
  
          if (currentFrame.getFrameType() == FrameTypes.GOAWAY
              || currentFrame.getFrameType() == FrameTypes.RST_STREAM) {
              writeFrameSync();
              rstStreamSent = true;
              this.updateStreamState(StreamState.CLOSED);
  
              if (currentFrame.getFrameType() == FrameTypes.GOAWAY) {
                  muxLink.closeConnectionLink(null);
              }
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "readWriteTransitionState: return: state: " + state);
              }
              return;
          }
  
          switch (state) {
              case IDLE:
                  processIdle(direction);
                  break;
  
              case RESERVED_LOCAL:
                  processReservedLocal(direction);
                  break;
  
              case RESERVED_REMOTE:
                  processReservedRemote(direction);
                  break;
  
              case OPEN:
                  processOpen(direction);
                  break;
  
              case HALF_CLOSED_REMOTE:
                  processHalfClosedRemote(direction);
                  break;
  
              case HALF_CLOSED_LOCAL:
                  processHalfClosedLocal(direction);
                  break;
  
              case CLOSED:
                  processClosed(direction);
                  break;
  
              default:
                  break;
  
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "readWriteTransitionState: exit: state: " + state);
          }
      }