Skip to content

Bump com.cedarsoftware:json-io from 4.70.0 to 4.92.0 in /java-spring-ai-mcp#216

Open
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/maven/java-spring-ai-mcp/com.cedarsoftware-json-io-4.92.0
Open

Bump com.cedarsoftware:json-io from 4.70.0 to 4.92.0 in /java-spring-ai-mcp#216
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/maven/java-spring-ai-mcp/com.cedarsoftware-json-io-4.92.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Feb 9, 2026

Bumps com.cedarsoftware:json-io from 4.70.0 to 4.92.0.

Changelog

Sourced from com.cedarsoftware:json-io's changelog.

4.92.0 - 2026-02-08

  • PERFORMANCE: Optimized Resolver/ObjectResolver read path (~6% faster Java deserialization)
    • Correctness fix: createSameTypeCollection() - Fixed inheritance-order bug where LinkedHashSet was incorrectly created as HashSet, losing insertion-order preservation
    • Correctness fix: shouldSkipTraversal() - Fixed rawClass.isInstance(Number.class) (always false) to Number.class.isAssignableFrom(rawClass)
    • Performance: Eliminated strategy pattern in assignField() - removed AssignmentStrategy interface, AssignmentContext class, and 7 strategy methods; inlined as direct if/else chain, eliminating ~16M object allocations per 100k iterations
    • Performance: Added fast primitive coercion to ObjectResolver (traverseArray, traverseCollection, assignField) - direct Long→int/short/byte and Double→float casts bypass expensive Converter lookup chains
    • Performance: Injector now uses LambdaMetafactory-generated BiConsumer for field injection (~5-8% faster Read). The JIT can inline the generated lambda to near-direct field access speed, replacing non-inlinable MethodHandle/VarHandle instance-field dispatch. Uses privateLookupIn (JDK 9+) for non-public classes; falls back gracefully to existing mechanisms.
    • Performance: Accessor now uses LambdaMetafactory-generated Function for field access during JSON writing. Same JIT-inlinable technique as Injector, applied to the write path.
  • BUG FIX: JsonWriter.doesValueTypeMatchFieldType() - declaredClassIsLongWrittenAsString incorrectly checked objectClass instead of declaredType for the long.class case, causing unnecessary @type wrappers on primitive long fields when writeLongsAsStrings was enabled
  • BUG FIX: JsonWriter.doesValueTypeMatchFieldType() - Long.class vs long.class autoboxing mismatch caused unnecessary @type wrappers on Long values assigned to primitive long fields
  • BUG FIX: JsonWriter - Removed JSON5 trailing comma writes; trailing commas are now supported on READ (JSON5 tolerance) but never written, as they added complexity without benefit
  • BUG FIX: ToonWriter/ToonReader - Fixed empty map handling: ToonWriter now writes empty maps inline as {} in both standalone and list-element contexts; ToonReader now recognizes {} in list arrays as empty objects instead of treating them as strings
  • BUG FIX: ToonReader.parseNumber() - Replaced custom numeric parsing with delegation to MathUtilities.parseToMinimalNumericType() from java-util, fixing extreme doubles (e.g., Double.MAX_VALUE written as 309-digit plain integer) and large BigInteger values that were incorrectly returned as strings
  • BUG FIX: ToonWriter - Fixed double-colon bug in nested collections: writeCollection() was writing [N]: then calling writeCollectionElements() which added {cols}: for tabular format, producing [N]:{cols}: instead of [N]{cols}:
  • BUG FIX: ToonReader.isArrayStart() - Fixed tabular array detection: the method checked for ]: as a contiguous substring but tabular format [N]{cols}: has ]{ between ] and :. Now correctly checks the character after ] for either : or {
  • PERFORMANCE: JsonWriter - Pre-fetched custom writers for primitive array hot paths (long[], double[], float[]), avoiding per-array getCustomWriter() lookups
  • PERFORMANCE: JsonWriter - Added writeIntDirect() for zero-allocation int/short writing using digit-pair lookup tables, replacing Integer.toString() + Writer.write(String)
  • PERFORMANCE: JsonWriter - Cached EnumSet.elementType field reflectively (lazy-initialized volatile) to avoid repeated getDeepDeclaredFields() lookups
  • PERFORMANCE: ObjectResolver.coerceLong() - Reordered branches by frequency (int/double first, then byte/float/short)
  • FEATURE: TOON key folding support (optional, spec-compliant)
    • Writer: Added WriteOptionsBuilder.toonKeyFolding(boolean) to collapse single-key object chains into dotted notation
      • {data: {metadata: {value: 42}}}data.metadata.value: 42
      • Works with arrays: data.metadata.items[3]: a,b,c
    • Reader: Always expands dotted keys into nested structures (unless quoted)
      • config.database.host: localhost{config: {database: {host: localhost}}}
      • Quoted keys preserved as literals: "dotted.key": value{dotted.key: value}
  • FEATURE: TOON tabular format delimiter variants support
    • Added support for tab-separated tabular format: items[2\t]{col1\tcol2}: with tab-delimited rows
    • Added support for pipe-separated tabular format: items[2|]{col1|col2}: with pipe-delimited rows
    • Comma delimiter remains the default: items[2]{col1,col2}:
    • All three variants parse to identical data structures and round-trip correctly
  • TESTING: Comprehensive TOON test suite — 241 tests total across ToonReaderTest and ToonWriterTest
    • 30 high-priority spec compliance tests (scalars, arrays, objects, nesting, round-trips)
    • 43 medium/lower priority tests (special types, edge cases, quoting rules, format variants)
    • 9 heterogeneous depth chain tests (all structural type combinations at every nesting level)
    • 31 gap tests: blank lines in tabular/list/object data, odd indentation, array count mismatches, fromToonToMaps() with tabular arrays, unclosed quotes/malformed input resilience, invalid escape sequence error handling
  • MAINTENANCE: Version 4.92.0, java-util dependency updated to 4.92.0

4.91.0 - not released

4.90.0 - 2026-02-02

  • MAINTENANCE: Migrated test files from deprecated JsonIo.toObjects() to JsonIo.toJava().asClass() API
    • Updated ~148 calls across 5 test files to use the new fluent builder pattern
    • Deprecated toObjects() methods remain available in JsonIo.java for backward compatibility
  • REFACTOR: Consolidated duplicate parse/resolve logic in JsonIo builder classes
    • Extracted common parseAndResolve() helper method using functional interface pattern
    • Unified error handling, unsafe mode management, and cleanup across all 5 builders
    • Reduced ~150 lines of duplicated code to ~35 lines of shared infrastructure
  • PERFORMANCE: Optimized JsonParser.readString() with bulk character reading
    • Uses new FastReader.readUntil() for bulk reads until quote or backslash
    • Reduces per-character I/O overhead with 256-char buffer reads

... (truncated)

Commits
  • 380402e Update changelog with detailed TOON bug fix descriptions and test breakdown
  • c230757 Prepare release 4.92.0: version bump, changelog update, java-util 4.92.0
  • 36894fb Tests: Add 31 TOON gap tests across 6 categories
  • d0a5075 Tests: Add 5 heterogeneous depth chain tests for TOON format
  • 57f946c Fix: ToonWriter/ToonReader nested collection and tabular array handling
  • 897a1f9 Fix: ToonReader parseNumber for extreme doubles and large integers
  • 9bbfe08 Fix: ToonWriter/ToonReader empty map handling bugs
  • 07f3efe Tests: Add 43 medium/lower priority TOON spec compliance tests
  • 3219f1a Tests: Add 30 high-priority TOON spec compliance tests
  • 5dc5138 Version 4.91.0: JsonWriter bug fixes, performance optimizations, remove trail...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.cedarsoftware:json-io](https://github.com/jdereg/json-io) from 4.70.0 to 4.92.0.
- [Changelog](https://github.com/jdereg/json-io/blob/master/changelog.md)
- [Commits](jdereg/json-io@4.70.0...4.92.0)

---
updated-dependencies:
- dependency-name: com.cedarsoftware:json-io
  dependency-version: 4.92.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Feb 9, 2026

Labels

The following labels could not be found: dependencies, java. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

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.

0 participants