docs: public void run()
      {
          MessageLog recMessageLog = (MessageLog)this.getMainRecord();
          try {
              Date timeTimeout = null;
              while (recMessageLog.hasNext())
              {
                  recMessageLog.next();
                  
                  timeTimeout = ((DateTimeField)recMessageLog.getField(MessageLog.TIMEOUT_TIME)).getDateTime();
                  if (timeTimeout == null)
                      continue;   // Never
                  if (timeTimeout.getTime() > System.currentTimeMillis())
                      break;
          
                  String strTrxID = recMessageLog.getCounterField().toString();
                  recMessageLog.edit();
                  int iErrorStatus = ((ReferenceField)recMessageLog.getField(MessageLog.MESSAGE_STATUS_ID)).getIDFromCode(MessageStatus.ERROR);
                  recMessageLog.getField(MessageLog.MESSAGE_STATUS_ID).setValue(iErrorStatus);
                  recMessageLog.set();
                  
                  this.processMessageTimeout(strTrxID);
              }
              if (recMessageLog.getEditMode() == DBConstants.EDIT_CURRENT)
                  if (timeTimeout != null)    // Always
              {   // More to process, schedule it for later
                  MessageManager messageManager = ((Application)getTask().getApplication()).getMessageManager();
                  Map<String,Object> properties = new Hashtable<String,Object>();
                  properties.put(PrivateTaskScheduler.TIME_TO_RUN, timeTimeout);
                  properties.put(PrivateTaskScheduler.NO_DUPLICATE, Constants.TRUE);
                  properties.put(DBParams.PROCESS, MessageTimeoutProcess.class.getName());
                  if (messageManager != null)
                      messageManager.sendMessage(new MapMessage(new BaseMessageHeader(MessageTimeoutProcess.TIMEOUT_QUEUE_NAME, MessageConstants.INTRANET_QUEUE, this, null), properties));
              }
          } catch (DBException ex) {
              ex.printStackTrace();
          }
      }