You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Serhiy Bzhezytskyy (Jira)" <ji...@apache.org> on 2026/07/15 16:25:00 UTC
[jira] [Commented] (SOLR-17316) SolrResponseBase getters should work with all ResponseParsers
[ https://issues.apache.org/jira/browse/SOLR-17316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18096550#comment-18096550 ]
Serhiy Bzhezytskyy commented on SOLR-17316:
-------------------------------------------
PR: https://github.com/apache/solr/pull/4640
Two commits. First is the narrow fix for this issue — getStatus/getQTime cast to Integer and CCE'd under the JSON parser (which gives Long); widened via Number.
Second commit goes further: a ResponseNormalizer that converts a JSON-parsed response to the canonical NamedList/SolrDocumentList shape at the client boundary, so getResults(), facets, grouping etc. all work over JSON — not just the header getters. That effectively delivers what SOLR-3451 asked for in 2012 (typed QueryResponse over JSON), which was closed Won't Fix because "solr does not have a way to write a JSON response and read the same value." Still true for json.nl=flat (lossy), but json.nl=map round-trips and the normalizer handles the rest. So I'd treat that second commit as reopening 3451 — happy to split it out or take it to dev@ if that's the better path. The first commit stands alone.
One broader question while you're looking: is a normalizer the right long-term fix for V1 search responses, or is the plan to eventually give QueryResponse typed V2/Jersey responses the way the admin APIs are going (SOLR-15734 etc.)? I couldn't find a JIRA tracking that for search — happy to file one if it's wanted, but wanted to check the direction first.
> SolrResponseBase getters should work with all ResponseParsers
> --------------------------------------------------------------
>
> Key: SOLR-17316
> URL: https://issues.apache.org/jira/browse/SOLR-17316
> Project: Solr
> Issue Type: Bug
> Components: SolrJ
> Affects Versions: 9.6.1, 10.0
> Reporter: Jason Gerlowski
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> SolrJ's SolrResponseBase has several "getter" methods that give users a syntactic sugar for accessing common response properties (such as the response header's "status" field). These methods are useful, but make certain Java class/type assumptions that only hold for some of Solr's ResponseParsers.
> For example, "SolrResponseBase.getResponseHeader" returns a NamedList - which is correct when the default "BinaryResponseParser" is used, but will cause a ClassCastException when used with other parsers (e.g. JsonMapResponseParser)
> We have a few options for how to remedy this:
> 1. Make these SolrResponseBase methods a little more flexible in the types they return and the variety of types they can handle as they walk the response NamedList
> 2. Try to align all ResponseParser implementations around using types similarly.
> 3. If (1) and (2) are infeasible, we could at least add Javadocs to these SolrResponseBase methods to indicate that they may throw CCE, and that they're only guaranteed to work with the BinaryResponseParser.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org