docs: public static BaseMessage processErrorMessage(RecordOwner recordOwner, BaseMessage messageOut, String strMessageError)
      {
          if (strMessageError != null)  // Add the error message to the message so the error processor has the right desc.
              ((TrxMessageHeader)messageOut.getMessageHeader()).put(TrxMessageHeader.MESSAGE_ERROR, strMessageError); // Error Description
          // Get the error message processor for this message/message type
          String strDefaultProcessorClass = null;
          MessageProcessInfoModel recMessageProcessInfo = (MessageProcessInfoModel)recordOwner.getRecord(MessageProcessInfoModel.MESSAGE_PROCESS_INFO_FILE);
          if (recMessageProcessInfo == null)
              recMessageProcessInfo = (MessageProcessInfoModel)Record.makeRecordFromClassName(MessageProcessInfo.THICK_CLASS, recordOwner);
          Object objResponseID = messageOut.getMessageHeader().get(TrxMessageHeader.MESSAGE_ERROR_PROCESSOR);
  
          if (objResponseID != null)
          {
              if (Utility.isNumeric(objResponseID.toString()))
              {
                  recMessageProcessInfo = recMessageProcessInfo.getMessageProcessInfo(objResponseID.toString());
                  if (recMessageProcessInfo != null)
                      strDefaultProcessorClass = recMessageProcessInfo.getField(MessageProcessInfo.PROCESSOR_CLASS).toString();
              }
              else
                  strDefaultProcessorClass = objResponseID.toString();
          }
          if (strDefaultProcessorClass == null)
          {
              String strMessageProcessInfoID = (String)messageOut.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_INFO_ID);
              recMessageProcessInfo = recMessageProcessInfo.getMessageProcessInfo(strMessageProcessInfoID);
              if (recMessageProcessInfo != null)
              {
                  Record recMessageInfo = ((ReferenceField)recMessageProcessInfo.getField(MessageProcessInfoModel.MESSAGE_INFO_ID)).getReference();
                  if (recMessageInfo != null)
                      if ((recMessageInfo.getEditMode() == DBConstants.EDIT_CURRENT) || (recMessageInfo.getEditMode() == DBConstants.EDIT_IN_PROGRESS))
                  {
                      String strMessageInfoType = ((ReferenceField)recMessageInfo.getField(MessageInfoModel.MESSAGE_INFO_TYPE_ID)).getReference().getField(MessageInfoTypeModel.CODE).toString();
                      String strContactType = ((ReferenceField)recMessageInfo.getField(MessageInfoModel.CONTACT_TYPE_ID)).getReference().getField(ContactTypeModel.CODE).toString();
                      String strRequestType = RequestTypeModel.ERROR; 
                      String strMessageProcessType = ((ReferenceField)recMessageProcessInfo.getField(MessageProcessInfoModel.MESSAGE_TYPE_ID)).getReference().getField(MessageTypeModel.CODE).toString();
                      String strProcessType = ((ReferenceField)recMessageProcessInfo.getField(MessageProcessInfoModel.PROCESS_TYPE_ID)).getReference().getField(ProcessTypeModel.CODE).toString();
                      
                      recMessageProcessInfo = recMessageProcessInfo.getMessageProcessInfo(strMessageInfoType, strContactType, strRequestType, strMessageProcessType, strProcessType);
                      if (recMessageProcessInfo != null)
                          strDefaultProcessorClass = recMessageProcessInfo.getField(MessageProcessInfoModel.PROCESSOR_CLASS).toString();
                  }
              }
          }
          if (strDefaultProcessorClass == null)
              strDefaultProcessorClass = BaseMessageErrorProcessor.class.getName();
          // Process this error
          BaseMessageProcessor messageInProcessor = (BaseMessageProcessor)BaseMessageProcessor.getMessageProcessor(recordOwner.getTask(), null, strDefaultProcessorClass);
          Utility.getLogger().info("processIncommingMessage - processor: " + messageInProcessor);
          BaseMessage errorMessage = null;
          if (messageInProcessor != null)
          {   // Always
              errorMessage = messageInProcessor.processMessage(messageOut);
              messageInProcessor.free();
          }
          return errorMessage;
      }