docs: public int handleMessage(BaseMessage message)
      {
          if (m_record != null)
          {
              Object bookmark = message.get(DBConstants.STRING_OBJECT_ID_HANDLE);
              if (bookmark instanceof String)
                  bookmark = Integer.parseInt((String)bookmark);  // Must be an Integer to compare correctly
              try   {
                  if (m_bUpdateRecord)
                  {   // Update an independent record
                      if (bookmark != null)
                      {   // Must have a bookmark
                          Record record = m_record.setHandle(bookmark, DBConstants.BOOKMARK_HANDLE);
                          if (record != null)
                          {   // No need to synchronize
                              if (record.edit() == DBConstants.NORMAL_RETURN)
                              {
                                  this.updateFields(record, message, true);
                                  record.set(); // This also propogates an updateRecord call.
                              }
                          }
                      }
                  }
                  else
                  {   // Update the record if it is still on the screen
                      if (bookmark != null)
                      {
                          if (m_record.getTable() instanceof GridTable)
                              return this.processGridChange(message);
                          Object objectID = m_record.getHandle(DBConstants.BOOKMARK_HANDLE);
                          if (objectID != null)
                              if (bookmark.equals(objectID))
                          {
                              synchronized (m_record)
                              {   // Don't allow user to do anything while I make these changes
                                  this.updateFields(m_record, message, true);
                              }
                          }
                      }
                      else
                      { // There isn't a current record on the screen - see if they wanted to update fields
                          String strFieldName = (String)message.get(COMPARE_FIELD_NAME);
                          String strFieldValue = (String)message.get(COMPARE_FIELD_VALUE);
                          if (strFieldName != null)
                          {
                              BaseField field = m_record.getField(strFieldName);
                              if (field != null) if (strFieldValue != null)
                                  if (strFieldValue.equals(field.getString()))
                              {
                                  synchronized (m_record)
                                  {   // Don't allow user to do anything while I make these changes
                                      this.updateFields(m_record, message, true);
                                  }
                              }
                          }
                      }
                  }
              } catch (DBException ex)    {
                  ex.printStackTrace();
              }
          }
          return DBConstants.NORMAL_RETURN;
      }