docs: @Override
      public final byte[] getCorrelationIdAsBytes() {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "getCorrelationIdAsBytes");
  
          byte[] value = null;
          int choice = getApi().getChoiceField(JsApiAccess.CORRELATIONID);
  
          /* If it is stored as a binary just extract it */
          if (choice == JsApiAccess.IS_CORRELATIONID_BINARYVALUE) {
              byte[] temp = (byte[]) getApi().getField(JsApiAccess.CORRELATIONID_BINARYVALUE);
              value = new byte[temp.length];
              System.arraycopy(temp, 0, value, 0, temp.length);
          }
  
          /* If it is stored as a String, we have to extract and convert it */
          else if (choice == JsApiAccess.IS_CORRELATIONID_STRINGVALUE) {
  
              String strValue = (String) getApi().getField(JsApiAccess.CORRELATIONID_STRINGVALUE);
  
              /* If it is a String representation of binary, return the binary */
              if (strValue.startsWith(ID_STRING)) {
                  value = HexString.hexToBin(strValue, 3);
              }
              /* Otherwise get the UTF8 byte encoding */
              else {
                  try {
                      value = strValue.getBytes("UTF8");
                  } catch (java.io.UnsupportedEncodingException e) {
                      /* No FFDC code needed */
                      /* Falling back to the default encoding seems to be acceptable to JMS */
                      value = strValue.getBytes();
                  }
              }
  
          }
  
          /* If the choice was 'Empty' do nothing as value is already null. */
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "getCorrelationIdAsBytes", value);
          return value;
  
      }