docs: private void lazyInitForReading() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "lazyInitForReading");
  
          // reset the flag to indicate that the message is not yet ready to be read
          requiresInit = false;
  
          // Get the contents of the message and initialise the data streams
          dataBuffer = jsBytesMsg.getBytes();
  
          // If the bytes message was sent by a non-JSJMS client that did not populate the
          // body bytes then it is possible that the dataBuffer is now null, which would
          // lead to NPE when we create the ByteArrayInputStream (228074).
          if (dataBuffer == null)
              dataBuffer = new byte[0];
  
          _readBytes = new ByteArrayInputStream(dataBuffer);
          readStream = new DataInputStream(_readBytes);
          dataStart = 0;
  
          // set the encoding fields
          try {
              if (propertyExists(ApiJmsConstants.ENCODING_PROPERTY)) {
                  int encoding = getIntProperty(ApiJmsConstants.ENCODING_PROPERTY);
                  integerEncoding = encoding & ApiJmsConstants.ENC_INTEGER_MASK;
                  floatEncoding = encoding & ApiJmsConstants.ENC_FLOAT_MASK;
              }
          } catch (JMSException je) {
              // No FFDC code needed
              // can safely ignore and use defaults instead
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "ignoring exception whilst getting encoding " + je);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "lazyInitForReading");
      }