@Override
  protected boolean isPreservedFilter(ViewerFilter filter) {
    if (filter instanceof CoreExpressionFilter) {
      CoreExpressionFilter expressionFilter = (CoreExpressionFilter) filter;

      Set<String> preservedIds =
          ContextUiPlugin.getDefault().getPreservedFilterIds(viewPart.getSite().getId());
      if (!preservedIds.isEmpty()) {
        try {
          Expression expression2 = (Expression) filterExpressionField1.get(expressionFilter);

          for (CommonFilterDescriptor commonFilterDescriptor : filterDescriptors) {
            if (preservedIds.contains(commonFilterDescriptor.getId())) {
              Expression expression1 =
                  (Expression) filterExpressionField2.get(commonFilterDescriptor);
              if (expression1 != null && expression1.equals(expression2)) {
                return true;
              }
            }
          }
        } catch (IllegalArgumentException e) {
          StatusHandler.log(
              new Status(
                  IStatus.ERROR,
                  ResourcesUiBridgePlugin.ID_PLUGIN,
                  "Could not determine filter",
                  e)); //$NON-NLS-1$
        } catch (IllegalAccessException e) {
          StatusHandler.log(
              new Status(
                  IStatus.ERROR,
                  ResourcesUiBridgePlugin.ID_PLUGIN,
                  "Could not determine filter",
                  e)); //$NON-NLS-1$
        }
      }
    }
    return false;
  }