docs: @Override
      public String readUTF() throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "readUTF");
          String result;
  
          try {
              // Check that we are in read mode
              checkBodyReadable("readUTF");
              if (requiresInit)
                  lazyInitForReading();
  
              // Mark the current position, so we can return to it if there's an error
              readStream.mark(8); // the argument appears to be ignored
  
              result = readStream.readUTF();
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(this, tc, "readUTF", result);
              return result;
          } catch (IOException e) {
              try {
                  readStream.reset(); // return to the marked position
              } catch (IOException e2) {
              }
              JMSException jmse = (JMSException) JmsErrorUtils.newThrowable(
                                                              MessageEOFException.class,
                                                              "END_BYTESMESSAGE_CWSIA0183",
                                                              null,
                                                              tc);
              jmse.initCause(e);
              throw jmse;
          }
      }