Skip to content

Commit b2bdedb

Browse files
committed
[apache#2527] SOLR-17334 Re-implement changes compatible to Solr 9.7+
1 parent 49f6539 commit b2bdedb

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

solr/core/src/java/org/apache/solr/servlet/CoordinatorHttpSolrCall.java

+28-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.solr.servlet;
1919

20+
import java.io.IOException;
2021
import java.lang.invoke.MethodHandles;
2122
import java.util.Map;
2223
import java.util.Properties;
@@ -30,13 +31,18 @@
3031
import org.apache.solr.common.cloud.DocCollection;
3132
import org.apache.solr.common.cloud.Replica;
3233
import org.apache.solr.common.cloud.ZkStateReader;
34+
import org.apache.solr.common.params.CommonParams;
35+
import org.apache.solr.common.util.NamedList;
3336
import org.apache.solr.core.CoreContainer;
3437
import org.apache.solr.core.CoreDescriptor;
3538
import org.apache.solr.core.SolrCore;
3639
import org.apache.solr.core.SyntheticSolrCore;
3740
import org.apache.solr.logging.MDCLoggingContext;
3841
import org.apache.solr.request.DelegatingSolrQueryRequest;
3942
import org.apache.solr.request.SolrQueryRequest;
43+
import org.apache.solr.response.QueryResponseWriter;
44+
import org.apache.solr.response.SolrQueryResponse;
45+
import org.apache.solr.servlet.cache.Method;
4046
import org.slf4j.Logger;
4147
import org.slf4j.LoggerFactory;
4248

@@ -67,12 +73,33 @@ public CoordinatorHttpSolrCall(
6773
this.factory = factory;
6874
}
6975

76+
@SuppressWarnings("unchecked")
77+
@Override
78+
protected void writeResponse(
79+
SolrQueryResponse solrRsp, QueryResponseWriter responseWriter, Method reqMethod)
80+
throws IOException {
81+
82+
// make coordinator mode explicit
83+
if (solrRsp.getValues().get(CommonParams.DEBUG) != null) {
84+
final NamedList<Object> debug =
85+
(NamedList<Object>) solrRsp.getValues().get(CommonParams.DEBUG);
86+
if (debug.get(CommonParams.TRACK) != null) {
87+
final NamedList<Object> track = (NamedList<Object>) debug.get(CommonParams.TRACK);
88+
track.add("requestCoordinatorNode", cores.getHostName());
89+
}
90+
}
91+
92+
super.writeResponse(solrRsp, responseWriter, reqMethod);
93+
}
94+
7095
@Override
7196
protected SolrCore getCoreByCollection(String collectionName, boolean isPreferLeader) {
97+
if (collectionName == null || collectionName.trim().isEmpty()) {
98+
return null;
99+
}
72100
this.collectionName = collectionName;
73101
SolrCore core = super.getCoreByCollection(collectionName, isPreferLeader);
74102
if (core != null) return core;
75-
if (!path.endsWith("/select")) return null;
76103
return getCore(factory, this, collectionName, isPreferLeader);
77104
}
78105

0 commit comments

Comments
 (0)