@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; }