in src/core/src/main/java/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java [189:272]
public boolean checkResult(DataContext dataContext, ResultData result) {
boolean supportsControllerDiscrimination = findValue(Boolean.class,
AbstractGraphConsumer.RESULT_SUPPORTS_CONTROLLERS_DISCRIMINATION,
result);
if (supportsControllerDiscrimination
&& showControllerSeriesOnly
&& excludesControllers) {
// Exporter shows controller series only
// whereas the current graph support controller
// discrimination and excludes controllers
log.warn("{} is set while the graph {} excludes controllers.",
ReportGeneratorConfiguration.EXPORTER_KEY_SHOW_CONTROLLERS_ONLY, graphId);
return false;
}
if (filterPattern == null) {
return true;
}
// Detect whether none series matches the series filter.
ResultData seriesResult = findData(AbstractGraphConsumer.RESULT_SERIES, result);
if (!(seriesResult instanceof ListResultData)) {
return true;
}
// Try to find at least one pattern matching
ListResultData seriesList = (ListResultData) seriesResult;
int count = seriesList.getSize();
int index = 0;
boolean matches = false;
while (index < count && !matches) {
ResultData currentResult = seriesList.get(index);
if (currentResult instanceof MapResultData) {
MapResultData seriesData = (MapResultData) currentResult;
String name = findValue(String.class,
AbstractGraphConsumer.RESULT_SERIES_NAME,
seriesData);
// Is the current series a controller series ?
boolean isController = findValue(Boolean.class,
AbstractGraphConsumer.RESULT_SERIES_IS_CONTROLLER,
seriesData);
matches = filterPattern.matcher(name).matches();
if (matches) {
// If the name matches pattern, other
// properties can discard the series
matches = !filtersOnlySampleSeries
|| !supportsControllerDiscrimination
|| isController
|| !showControllerSeriesOnly;
if(log.isDebugEnabled()) {
log.debug(
"name:{} matches pattern:{}, supportsControllerDiscrimination:{}, "
+ "isController:{}, showControllerSeriesOnly:{}",
name, filterPattern.pattern(),
supportsControllerDiscrimination,
isController,
showControllerSeriesOnly);
}
} else {
// If the name does not match the pattern,
// other properties can hold the series
matches = filtersOnlySampleSeries
&& !supportsControllerDiscrimination;
if (log.isDebugEnabled()) {
log.debug("name:{} does not match pattern:{}, filtersOnlySampleSeries:{},"
+ " supportsControllerDiscrimination:{}",
name, filterPattern.pattern(),
filtersOnlySampleSeries,
supportsControllerDiscrimination);
}
}
}
index++;
}
if (!matches) {
log.warn("No series matches the series_filter: {} in graph: {}",
ReportGeneratorConfiguration.EXPORTER_KEY_SERIES_FILTER, graphId);
return false;
}
return true;
}