in src/main/java/org/apache/sling/servlets/resolver/internal/PathBasedServletAcceptor.java [112:148]
private boolean accept(
String servletName,
SlingServletConfig config,
String servicePropertyKey,
boolean emptyValueApplies,
String... requestValues) {
final String[] propValues = toStringArray(config.getServiceProperty(servicePropertyKey));
if (propValues.length == 0) {
LOGGER.debug(
"Property {} is null or empty, not checking that value for {}", servicePropertyKey, servletName);
return true;
}
boolean accepted = false;
if (propValues.length == 1 && EMPTY_VALUE.equals(propValues[0])) {
// If supported for this service property, request value must be empty
if (!emptyValueApplies) {
throw new InvalidPropertyException("Special value " + EMPTY_VALUE + " is not valid for the "
+ servicePropertyKey + " service property");
} else {
accepted = requestValues.length == 0 || (requestValues.length == 1 && requestValues[0] == null);
}
} else {
// requestValues must match at least one value in propValue
for (String rValue : requestValues) {
for (String pValue : propValues) {
if (rValue != null && rValue.equals(pValue)) {
accepted = true;
break;
}
}
}
}
LOGGER.debug("accepted={} for property {} and servlet {}", accepted, servicePropertyKey, servletName);
return accepted;
}