code: @Override
      public boolean requestPermissionToFinishRead() {
          boolean rc = true;
          synchronized (this) {
              if ((currentState & FINISH_NOT_ALLOWED_MASK) != 0) {
                  rc = false;
              } else {
                  currentState = (currentState | READ_FINISHING) & READ_FINISHING_CLEAR_OUT;
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "requestPermissionToFinishRead returning " + rc);
          }
          return rc;
      }
docs: /*
  @see VirtualConnection#requestPermissionToFinishRead()