docs: void encodeProperty(ByteArrayOutputStream baos, Object value) throws JMSException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "encodeProperty", new Object[]{baos, value});
  
      // The value should be a non-null String
      if (value instanceof String) {
  
        baos.write(encodedName, 0, encodedName.length);            // Write out the encoded tname
  
        String strVal = (String)value;
        int len = Utf8Codec.getEncodedLength(strVal);
        byte[] buffer = new byte[len + ArrayUtil.SHORT_SIZE];     // bytes for the value length & the value itself
        ArrayUtil.writeShort(buffer, 0, (short)len);              // Encode in the length of the String value
        Utf8Codec.encode(buffer, ArrayUtil.SHORT_SIZE, strVal); // Encode in the String value itself
  
        baos.write(buffer, 0, buffer.length);                     // Write the encode value to the buffer
      }
  
      // If it is not a String, something has gone horribly wrong
      else {
        throw (JMSException)JmsErrorUtils.newThrowable(JMSException.class
                                                      ,"INTERNAL_ERROR_CWSIA0362"
                                                      ,new Object[] {"ShortStringPropertyCoder.encodeProperty#1", longName, value}
                                                      ,null
                                                      ,"ShortStringPropertyCoder.encodeProperty#1"
                                                      ,null
                                                      ,tc);
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "encodeProperty");
    }