| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Thanks for the docs update. Fixes #1110 |
Sorry, something went wrong.
…d upstream, A5 closed
…ing configurable Listings are scoped private, not public. tools/list is filtered per caller (modelcontextprotocol#1111), so a shared cache must never serve one principal's listing to another; do not restore PUBLIC without gating it on the absence of a list filter. Client-side, the cache lookup moved inside Mono.defer so an assembled Mono stays cold, a generation counter drops a response that was in flight when its group was invalidated, and a listing spanning several pages is not cached at all, because stitching a cached first page to a freshly fetched later page mixes two server snapshots. ttlMs is validated on the result builders rather than in the compact constructor: a bad server hint must not make the whole listing unparseable. McpClientCacheStore keeps a Caffeine or shared-store implementation a user choice, so mcp-core stays at its three compile dependencies.
…ing configurable Listings are scoped private, not public. tools/list is filtered per caller (modelcontextprotocol#1111), so a shared cache must never serve one principal's listing to another; do not restore PUBLIC without gating it on the absence of a list filter. Client-side, the cache lookup moved inside Mono.defer so an assembled Mono stays cold, a generation counter drops a response that was in flight when its group was invalidated, and a listing spanning several pages is not cached at all, because stitching a cached first page to a freshly fetched later page mixes two server snapshots. ttlMs is validated on the result builders rather than in the compact constructor: a bad server hint must not make the whole listing unparseable. McpClientCacheStore keeps a Caffeine or shared-store implementation a user choice, so mcp-core stays at its three compile dependencies.
| Back | FazBrowse Home | New Git URL |
What this change does
Adds the input-conversion contract of the validate method to the
JsonSchemaValidator interface Javadoc.
The method treats a String argument as a serialized JSON document and parses
it with readTree before validation. It converts any other type directly with
valueToTree. Both consequences follow for callers:
represents the value red.
parsing fails with a message that mentions the tool JSON Schema, even though
the schema is valid.
This contract exists identically in both implementations
(mcp-json-jackson2 at line 70, mcp-json-jackson3 at line 69). The interface
Javadoc did not state it before this change.
Why
During output-schema validation testing, a root-level enum check failed in a
way that pointed at the schema parser rather than at caller-side string
handling. Tracing both default validators revealed the undocumented branch.
Documentation-only changes to a shared SPI carry no migration risk, and the
wording mirrors what the code does so future refactors can update one place.
Testing
No production code changed. Before opening this pull request, I verified:
Notes for reviewers
If you prefer stronger ergonomics over pure documentation (for example, a
dedicated overload or a clearer parse-failure message), this wording still
stands on its own. Follow-up issues can adjust either message or API without
conflict. Known sharp edge, intentionally out of scope here: the
"Error parsing tool JSON Schema" prefix also appears when the content fails
to parse; existing test assertions pin that string in both modules.