@Override
  public void redo() {
    super.redo();

    // Redo the change.
    try {
      if (newValue == null) {
        entry.clearField(field);
      } else {
        entry.setField(field, newValue);
      }

    } catch (IllegalArgumentException ex) {
      LOGGER.info("Cannot perform redo", ex);
    }
  }
  @Override
  public void undo() {
    super.undo();

    // Revert the change.
    try {
      if (oldValue == null) {
        entry.clearField(field);
      } else {
        entry.setField(field, oldValue);
      }

      // this is the only exception explicitly thrown here
    } catch (IllegalArgumentException ex) {
      LOGGER.info("Cannot perform undo", ex);
    }
  }