private void reprocess(final FindMetaCriteria criteria,
                           final ProcessChoice processChoice) {
        final QueryData queryData = QueryData
                .builder()
                .dataSource(MetaFields.STREAM_STORE_DOC_REF)
                .expression(criteria.getExpression())
                .build();
        final CreateProcessFilterRequest request = CreateProcessFilterRequest
                .builder()
                .queryData(queryData)
                .priority(processChoice.getPriority())
                .autoPriority(processChoice.isAutoPriority())
                .reprocess(true)
                .enabled(processChoice.isEnabled())
                .minMetaCreateTimeMs(processChoice.getMinMetaCreateTimeMs())
                .maxMetaCreateTimeMs(processChoice.getMaxMetaCreateTimeMs())
                .build();

        restFactory
                .create(PROCESSOR_FILTER_RESOURCE)
                .method(res -> res.reprocess(request))
                .onSuccess(result -> {
                    if (result != null && result.size() > 0) {
                        Severity maxSeverity = null;

                        final StringBuilder sb = new StringBuilder();
                        for (final ReprocessDataInfo info : result) {
                            if (maxSeverity == null || info.getSeverity().greaterThan(maxSeverity)) {
                                maxSeverity = info.getSeverity();
                            }

                            sb.append(info.getSeverity().getDisplayValue());
                            sb.append(": ");
                            sb.append(info.getMessage());
                            if (info.getDetails() != null) {
                                sb.append("\n\t");
                                sb.append(info.getDetails());
                            }
                            sb.append("\n");
                        }

                        if (maxSeverity != null) {
                            switch (maxSeverity) {
                                case INFO:
                                    AlertEvent.fireInfo(
                                            AbstractMetaListPresenter.this,
                                            "Result Details",
                                            sb.toString().trim(),
                                            null);
                                    break;
                                case WARNING:
                                    AlertEvent.fireWarn(
                                            AbstractMetaListPresenter.this,
                                            "Result Details",
                                            sb.toString().trim(),
                                            null);
                                    break;
                                case ERROR:
                                case FATAL_ERROR:
                                    AlertEvent.fireError(
                                            AbstractMetaListPresenter.this,
                                            "Result Details",
                                            sb.toString().trim(),
                                            null);
                                    break;
                                default:
                                    throw new RuntimeException("Unknown severity " + maxSeverity);
                            }
                        }
                    }
                })
                .taskMonitorFactory(getView())
                .exec();

    }
@return The effective criteria taking into account the active filter and any
row selections.
stroom-core-client/src/main/java/stroom/data/client/presenter/AbstractMetaListPresenter.java