docs: public boolean readUserInfo(boolean bRefreshOnChange, boolean bForceRead)
      {
          String strUserID = this.getProperty(DBParams.USER_ID);
          if (strUserID == null)
              strUserID = this.getProperty(DBParams.USER_NAME);
          if (strUserID == null)
              strUserID = Constants.BLANK;
          Record recUserInfo = (Record)this.getUserInfo();
          if (recUserInfo == null)
              recUserInfo = Record.makeRecordFromClassName(UserInfoModel.THICK_CLASS, m_systemRecordOwner);
          else
          {
              try {
                  if (recUserInfo.getEditMode() == DBConstants.EDIT_IN_PROGRESS)
                      if (recUserInfo.isModified())
                  {
                      int iID = (int)recUserInfo.getCounterField().getValue();
                      recUserInfo.set();  // Update the current record.
                      if (iID != recUserInfo.getCounterField().getValue())
                          this.setProperty(DBParams.USER_ID, recUserInfo.getCounterField().toString());
                  }
              } catch (DBException ex)    {
                  ex.printStackTrace();
              }
          }
          boolean bFound = ((UserInfoModel)recUserInfo).getUserInfo(strUserID, bForceRead);    // This will read using either the userID or the user name
          if (!bFound)
          { // Not found, add new
              int iOpenMode = recUserInfo.getOpenMode();
              if (bRefreshOnChange)
                  recUserInfo.setOpenMode(recUserInfo.getOpenMode() | DBConstants.OPEN_REFRESH_AND_LOCK_ON_CHANGE_STRATEGY);    // Refresh if new, lock if current
              else
                  recUserInfo.setOpenMode(recUserInfo.getOpenMode() & ~DBConstants.OPEN_REFRESH_AND_LOCK_ON_CHANGE_STRATEGY);    // Refresh if new, lock if current
              try   {
                  recUserInfo.addNew(); // new user
                  if ((strUserID != null) && (strUserID.length() > 0))
                      if (!Utility.isNumeric(strUserID))    // Can't have a numeric userid.
                          recUserInfo.getField(UserInfoModel.USER_NAME).setString(strUserID);
              } catch (DBException ex)    {
                  bFound = false;
              } finally {
                  recUserInfo.setOpenMode(iOpenMode);
              }
          }
          return bFound;
      }