Skip to content

fix(search): tolerate blank optional arguments and return safe errors - #195

Open
adityamparikh wants to merge 4 commits into
apache:mainfrom
adityamparikh:fix/search-optional-arguments
Open

fix(search): tolerate blank optional arguments and return safe errors#195
adityamparikh wants to merge 4 commits into
apache:mainfrom
adityamparikh:fix/search-optional-arguments

Conversation

@adityamparikh

@adityamparikh adityamparikh commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Blank entries in the optional filterQueries, facetFields and sortClauses arguments are ignored; non-blank values and the validation of sort orders are unchanged.
  • Backend failures return an actionable message without raw Solr details, and without a cause the MCP annotation layer could unwrap into the client response (it reports the root cause's message, so a hint attached to a wrapping exception never reached the client). The original Solr status code is preserved. Full diagnostics go to the server log at WARN.
  • Applies to both transports; the MCP-level regressions in McpClientIntegrationTestBase run over HTTP and STDIO.

Verification

./gradlew build on Java 25: 414 tests, 0 failures, 7 skipped (the OTLP suite, skipped on main until #198). Unit, real-Solr and MCP HTTP/STDIO coverage. Native images and other Solr versions were not tested.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ

adityamparikh and others added 2 commits September 11, 2026 14:49
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
Co-authored-by: Junie <junie@jetbrains.com>
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
Co-authored-by: Junie <junie@jetbrains.com>
adityamparikh added a commit to adityamparikh/solr-mcp that referenced this pull request Sep 11, 2026
Keep this PR indexing-only; move search usability changes to apache#195. Replace root-restricted JSON file ingestion with local STDIO multi-format ingestion without a file-size cap.

Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
Co-authored-by: Junie <junie@jetbrains.com>
adityamparikh and others added 2 commits September 12, 2026 23:10
The client only sees the generic message, so the log is the only record of
the cause; DEBUG hid it in production. The schemaless-facet integration test
exercised Solr's faceting rather than this change and was the sole reason
for the untyped platform fixture field.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
The untyped platform fixture field went away with the schemaless-facet test,
so the blank-options test now filters on platform_ss.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant