in rest-api/src/jetbrains/buildServer/server/rest/data/Locator.java [506:573]
public void checkLocatorFullyProcessed() {
processHelpRequest();
String reportKindString = TeamCityProperties.getProperty("rest.report.unused.locator", "error");
if (!TeamCityProperties.getBooleanOrTrue("rest.report.locator.errors")) {
reportKindString = "off";
}
if (reportKindString.equals("off")) {
return;
}
if (reportKindString.contains("reportKnownButNotReportedDimensions")) {
reportKnownButNotReportedDimensions();
}
final Set<String> unusedDimensions = getUnusedDimensions();
if (unusedDimensions.isEmpty()) {
return;
}
Set<String> ignoredDimensions = mySupportedDimensions == null ? Collections.emptySet() :
CollectionsUtil.intersect(unusedDimensions, CollectionsUtil.join(Arrays.asList(mySupportedDimensions), myHiddenSupportedDimensions));
Set<String> unknownDimensions = CollectionsUtil.minus(unusedDimensions, ignoredDimensions);
StringBuilder message = new StringBuilder();
if (unknownDimensions.isEmpty() && unusedDimensions.size() == myDimensions.size()) {
//nothing is used
message.append("Unsupported locator: no dimensions are used, try another combination of the dimensions.");
} else if (unusedDimensions.size() > 1) {
message.append("Locator dimensions ");
if (!ignoredDimensions.isEmpty()) {
message.append(ignoredDimensions).append(" ").append(ignoredDimensions.size() == 1 ? "is" : "are").append(" ignored");
}
if (!unknownDimensions.isEmpty()) {
if (!ignoredDimensions.isEmpty()) {
message.append(" and ");
}
message.append(unknownDimensions).append(" ").append(unknownDimensions.size() == 1 ? "is" : "are").append(" unknown");
}
message.append(".");
} else if (unusedDimensions.size() == 1) {
if (!unusedDimensions.contains(LOCATOR_SINGLE_VALUE_UNUSED_NAME)) {
if (mySupportedDimensions != null) {
message.append("Locator dimension ").append(unusedDimensions).append(" is ");
if (!ignoredDimensions.isEmpty()) {
message.append("known but was ignored during processing. Try omitting the dimension.");
} else {
message.append("unknown.");
}
} else {
message.append("Locator dimension ").append(unusedDimensions).append(" is ignored or unknown.");
}
} else {
message.append("Single value locator '").append(mySingleValue).append("' was ignored.");
}
}
if (mySupportedDimensions != null && mySupportedDimensions.length > 0) {
if (message.length() > 0) {
message.append(" ");
}
message.append(getLocatorDescription(reportKindString.contains("includeHidden")));
}
if (reportKindString.contains("log")) {
if (reportKindString.contains("log-warn")) {
LOG.warn(message.toString());
} else {
LOG.debug(message.toString());
}
}
if (reportKindString.contains("error")) {
throw new LocatorProcessException(this, message.toString());
}
}