1616 */
1717package org .apache .solr .client .solrj .response ;
1818
19- import java .lang .invoke .MethodHandles ;
2019import java .util .Date ;
2120import java .util .HashMap ;
2221import java .util .Map ;
2524import org .apache .solr .client .api .model .NodeSystemResponse ;
2625import org .apache .solr .client .solrj .request .json .JacksonContentWriter ;
2726import org .apache .solr .common .util .NamedList ;
28- import org .slf4j .Logger ;
29- import org .slf4j .LoggerFactory ;
3027
3128/** This class holds the response from V1 "/admin/info/system" or V2 "/node/system" */
3229public class SystemInfoResponse extends SolrResponseBase {
3330
34- private static final Logger log = LoggerFactory .getLogger (MethodHandles .lookup ().lookupClass ());
35-
3631 private static final long serialVersionUID = 1L ;
3732
3833 private final Map <String , NodeSystemResponse > nodesInfo = new HashMap <>();
@@ -44,21 +39,36 @@ public SystemInfoResponse(NamedList<Object> namedList) {
4439
4540 @ Override
4641 public void setResponse (NamedList <Object > response ) {
47- if (getResponse () == null ) super .setResponse (response );
42+ if (getResponse () == null ) {
43+ super .setResponse (response );
44+ } else {
45+ assert response .equals (getResponse ());
46+ return ;
47+ }
48+
4849 if (getResponse ().get ("node" ) == null ) {
4950 // multi-nodes response, NamedList of "host:port_solr"->NodeSystemResponse
50- for (Entry <String , Object > node : getResponse () ) {
51+ for (Entry <String , Object > node : response ) {
5152 if (node .getKey ().endsWith ("_solr" )) {
5253 nodesInfo .put (
5354 node .getKey (),
5455 JacksonContentWriter .DEFAULT_MAPPER .convertValue (
5556 node .getValue (), NodeSystemResponse .class ));
5657 }
5758 }
59+
60+ // If no node was found, that's very likely Solr runs in standalone mode.
61+ // Add a single node info instance with null key (no node name is available).
62+ if (nodesInfo .isEmpty ()) {
63+ nodesInfo .put (
64+ null ,
65+ JacksonContentWriter .DEFAULT_MAPPER .convertValue (response , NodeSystemResponse .class ));
66+ }
67+
5868 } else {
5969 // single-node response
6070 nodesInfo .put (
61- getResponse () .get ("node" ).toString (),
71+ response .get ("node" ).toString (),
6272 JacksonContentWriter .DEFAULT_MAPPER .convertValue (
6373 getResponse (), NodeSystemResponse .class ));
6474 }
@@ -77,7 +87,7 @@ public String getMode() {
7787 /** Get all modes, per node */
7888 public Map <String , String > getAllModes () {
7989 Map <String , String > allModes = new HashMap <>();
80- nodesInfo .entrySet (). stream (). forEach ( e -> allModes .put (e . getKey (), e . getValue () .mode ));
90+ nodesInfo .forEach (( key , value ) -> allModes .put (key , value .mode ));
8191 return allModes ;
8292 }
8393
@@ -99,7 +109,7 @@ public String getZkHost() {
99109 /** Get all ZK hosts, per node */
100110 public Map <String , String > getAllZkHosts () {
101111 Map <String , String > allModes = new HashMap <>();
102- nodesInfo .entrySet (). stream (). forEach ( e -> allModes .put (e . getKey (), e . getValue () .zkHost ));
112+ nodesInfo .forEach (( key , value ) -> allModes .put (key , value .zkHost ));
103113 return allModes ;
104114 }
105115
@@ -121,7 +131,7 @@ public String getSolrHome() {
121131 /** Get all Solr homes, per node */
122132 public Map <String , String > getAllSolrHomes () {
123133 Map <String , String > allModes = new HashMap <>();
124- nodesInfo .entrySet (). stream (). forEach ( e -> allModes .put (e . getKey (), e . getValue () .solrHome ));
134+ nodesInfo .forEach (( key , value ) -> allModes .put (key , value .solrHome ));
125135 return allModes ;
126136 }
127137
@@ -143,7 +153,7 @@ public String getCoreRoot() {
143153 /** Get all core roots, per node */
144154 public Map <String , String > getAllCoreRoots () {
145155 Map <String , String > allModes = new HashMap <>();
146- nodesInfo .entrySet (). stream (). forEach ( e -> allModes .put (e . getKey (), e . getValue () .coreRoot ));
156+ nodesInfo .forEach (( key , value ) -> allModes .put (key , value .coreRoot ));
147157 return allModes ;
148158 }
149159
0 commit comments