in crossdc-consumer/src/main/java/org/apache/solr/crossdc/messageprocessor/SolrMessageProcessor.java [305:330]
void preventCircularMirroring(MirroredSolrRequest mirroredSolrRequest) {
if (mirroredSolrRequest.getSolrRequest() instanceof UpdateRequest) {
UpdateRequest updateRequest = (UpdateRequest) mirroredSolrRequest.getSolrRequest();
ModifiableSolrParams params = updateRequest.getParams();
String shouldMirror = (params == null ? null : params.get(CrossDcConstants.SHOULD_MIRROR));
if (shouldMirror == null) {
log.warn(CrossDcConstants.SHOULD_MIRROR + " param is missing - setting to false. Request={}", mirroredSolrRequest);
updateRequest.setParam(CrossDcConstants.SHOULD_MIRROR, "false");
} else if (!"false".equalsIgnoreCase(shouldMirror)) {
log.warn(CrossDcConstants.SHOULD_MIRROR + " param equal to " + shouldMirror);
}
} else {
SolrParams params = mirroredSolrRequest.getSolrRequest().getParams();
String shouldMirror = (params == null ? null : params.get(CrossDcConstants.SHOULD_MIRROR));
if (shouldMirror == null) {
if (params instanceof ModifiableSolrParams) {
log.warn("{} {}", CrossDcConstants.SHOULD_MIRROR, "param is missing - setting to false");
((ModifiableSolrParams) params).set(CrossDcConstants.SHOULD_MIRROR, "false");
} else {
log.warn("{} {}", CrossDcConstants.SHOULD_MIRROR, "param is missing and params are not modifiable");
}
} else if (!"false".equalsIgnoreCase(shouldMirror)) {
log.warn("{} {}", CrossDcConstants.SHOULD_MIRROR, "param is present and set to " + shouldMirror);
}
}
}