docs: public int edit() throws DBException
      {
          if (this.getCurrentTable() != this.getNextTable())
              throw new DatabaseException("Can't lock record in alternate table");  // Never
          SubFileFilter listener = (SubFileFilter)this.getRecord().getListener(SubFileFilter.class, false);
          boolean state = true;
          if (listener != null)
          	if (listener.getMainRecord().getTable().getCurrentTable() != listener.getMainRecord().getTable())
          		state = listener.setEnabledListener(false);		// This handles a very obscure case: if this is a sub of a record in another table, can't lock main
          int iErrorCode = DBConstants.NORMAL_RETURN;
          try {
  	        iErrorCode = super.edit();
          } catch (DBException e) {
  	        throw e;
          } finally {
          	if (listener != null)
          		listener.setEnabledListener(state);
          }
          return iErrorCode;
      }