docs: public BaseMessageHeader createMessageHeader()
      {
          Map<String,Object> properties = ((PropertiesField)this.getField(MessageLog.MESSAGE_HEADER_PROPERTIES)).getProperties();
          BaseMessageHeader messageHeader = null;
          String strMessageHeaderClassName = this.getField(MessageLog.MESSAGE_HEADER_CLASS_NAME).toString();
          String strQueueName = this.getField(MessageLog.MESSAGE_QUEUE_NAME).toString();
          String strQueueType = this.getField(MessageLog.MESSAGE_QUEUE_TYPE).toString();
          Object source = null;
          messageHeader = BaseMessageHeader.createMessageHeader(strMessageHeaderClassName, strQueueName, strQueueType, source, properties);
          if (messageHeader == null)
              messageHeader = new TrxMessageHeader(null, properties);
          if (messageHeader instanceof TrxMessageHeader)
          {
              properties = ((PropertiesField)this.getField(MessageLog.MESSAGE_INFO_PROPERTIES)).getProperties();
              ((TrxMessageHeader)messageHeader).setMessageInfoMap(properties);
              properties = ((PropertiesField)this.getField(MessageLog.MESSAGE_TRANSPORT_PROPERTIES)).getProperties();
              ((TrxMessageHeader)messageHeader).setMessageTransportMap(properties);
              ((TrxMessageHeader)messageHeader).put(TrxMessageHeader.LOG_TRX_ID, this.getCounterField().toString());  // Should be there
          }
          return messageHeader;
      }